Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ RPC、套接字和性能注意事项_C++_Ubuntu_G++_Debian_Rpc - Fatal编程技术网

C++ RPC、套接字和性能注意事项

C++ RPC、套接字和性能注意事项,c++,ubuntu,g++,debian,rpc,C++,Ubuntu,G++,Debian,Rpc,我在同一子网中有两台机器。我想尽快在两台机器之间交换对象。它使用的是g++并且在Debian/Ubuntu上。这些机器加载了流量和CPU 一种方法是通过套接字将对象的压缩序列化作为二进制数据包发送(使用Google协议缓冲区对ex进行编码) 科尔巴似乎在这方面做得太过火了 我读了一些关于ONC-RPC和Sun RPC的文章 Boost是否有一个高效的库来实现这一点 我相信你还有其他想法。您将如何确保2011年的最佳响应时间。。。我可以放弃一点点响应时间来获得标准解决方案 您可以将用于序列化的

我在同一子网中有两台机器。我想尽快在两台机器之间交换对象。它使用的是g++并且在Debian/Ubuntu上。这些机器加载了流量和CPU

  • 一种方法是通过套接字将对象的压缩序列化作为二进制数据包发送(使用Google协议缓冲区对ex进行编码)

  • 科尔巴似乎在这方面做得太过火了

  • 我读了一些关于ONC-RPC和Sun RPC的文章

  • Boost是否有一个高效的库来实现这一点


我相信你还有其他想法。您将如何确保2011年的最佳响应时间。。。我可以放弃一点点响应时间来获得标准解决方案

您可以将用于序列化的Google protobuf与用于处理实际I/O的Google protobuf相结合。这将在性能和实现时间之间提供良好的平衡。

Zeromq人员已经尝试使用Linux实时内核来保证低延迟。正如您所看到的,为了实现这一保证,必须牺牲大量的平均延迟。根据应用程序的不同,这可能是一个必要的权衡

当你说要“尽快在两台机器之间交换对象”时,听起来你感兴趣的是尽可能限制网络带宽。如果是这样的话,你可以考虑使用.< /P> 首字母缩略词FAST的官方意思是“适用于流媒体的修复”,这意味着它最适合于修复协议,但事实并非如此。FAST可以用于任何协议


快速编码的数据包可能非常小,好的实现将在编码和解码中使用有限的CPU资源。折衷的是,快速协议并不是世界上最容易让人摸索的东西,而且代码可能很难正确编写。有一些开源产品实现可能适合您的需要,也可能不适合您的需要。C++的一个实现是.< /p> + 1,并没有真正准备好将内核转换成LinuxRT。关于平均延迟与最差延迟的有趣观点。我们将调查ZeroMQ