Adi*_*369 9 java performance client
我有一个"排队论"问题,需要完成以下工作:
但是,我发现Queue总是在建立(在两个系统上运行 - 客户端和服务器PC /笔记本电脑),
注意:当我在同一系统上运行进程时,Queue不会构建,并且大多数情况下,它接近1到20个数据包.
需要有人检查/查看我的代码.
代码粘贴在这里:
客户(单班):
服务器(多个类文件包:serverClasses:
针对10MBps和10000字节大小的数据包的"QUEUE_LEN Vs. #PACKETS"示例图表,持续时间为30 - 35秒

在我看来,在客户端上timeinterval总是 0。这是意图吗?您在代码中说了秒,但缺少* 1000.
timeInterval = 1 / ( noOfPacketsToBeSent );
Run Code Online (Sandbox Code Playgroud)
然后你打电话Thread.sleep((long) timeinterval)。既然sleep()采取了long,那么这最多会休眠 1 毫秒,通常(我怀疑)休眠 0 毫秒。睡眠只有毫秒的分辨率。如果您想要纳秒分辨率,那么您必须执行以下操作:
TimeUnit timeUnit = TimeUnit.NANOSECONDS;
...
timeUnit.sleep(50);
Run Code Online (Sandbox Code Playgroud)
我怀疑当客户端和服务器都在同一台机器上时,您的 CPU 会限制您的运行。当它们位于不同的盒子上时,事情就会备份,因为客户端实际上由于不正确的睡眠时间而淹没了服务器。
至少这是我最好的猜测。