Java TCP / IP套接字延迟-停留在50μs(微秒)? (用于Java IPC)
|
我们一直在对应用程序进行性能分析,以尽可能减少延迟。我们的应用程序由3个独立的Java进程组成,所有这些进程都运行在同一服务器上,它们通过TCP / IP套接字相互传递消息。
我们已经将第一个组件中的处理时间减少到25μs,但是我们看到(在localhost上)TCP / IP套接字写入下一个组件的时间大约为50μs。我们看到了另一种异常行为,因为接受连接的组件可以更快地写入(即<50μs)。目前,除套接字通信外,所有组件的运行时间均小于100μs。
由于不是TCP / IP专家,我不知道该怎么做才能加快速度。 Unix域套接字会更快吗? MemoryMappedFiles?还有哪些其他机制可能是将数据从一个Java进程传递到另一个Java进程的更快方法?
更新6/21/2011
我们创建了2个基准应用程序,其中1个使用Java,1个使用C ++,以更严格地对TCP / IP进行基准测试并进行比较。 Java应用程序使用NIO(阻止模式),而C ++使用Boost ASIO tcp库。结果差不多相等,C ++应用程序比Java快4μs(但在其中一项测试中,Java击败了C ++)。同样,两种版本在每条消息的时间上都显示出很大的可变性。
我认为我们同意以下基本结论:共享内存实现将是最快的。 (尽管我们也希望评估Informatica产品,只要它适合预算。)
没有找到相关结果
已邀请:
5 个回复
琶竞捆栓
眠皇
苦诫
马口
财沟项胶