进程内、进程间和机器间调用之间的相对区别是什么?
忽略有效负载大小,进程内调用(例如在 C++ 或 Java 中)、对同一台计算机上的进程的套接字调用以及对另一台计算机上的进程的套接字调用之间的延迟相对差异是什么? 这可以表示为以 ns/ms 为单位的最小延迟或相对数量级。
我正在寻找类似的东西:
http://duartes.org/gustavo/blog/post/what-your-computer-does-while-you-wait
...但扩展到进程内调用与网络调用(假设快速内联网)。
Ignoring payload size, what is relative difference in latency between an in-proc call (say in C++ or Java), a socket call to a process on the same machine, and a socket call to a process on another machine? This can be expressed as a minimum latency in ns/ms or in terms of relative orders of magnitude.
I'm looking for something similar to this:
http://duartes.org/gustavo/blog/post/what-your-computer-does-while-you-wait
... but extended to in-proc vs. network calls (assume fast intranet).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是一个好主意......不精确,但它给出了粗略的比率:
方法调用 -- ~100s ns
同步方法调用 -- ~1000s ns
反射方法调用 -- 低 ~10,000 ns
机器环回 -- ~30,000-150,000 ns
本地子网 -- 1-2 ms
互联网 -- 30-100 ms
That is a good idea... not precise, but it gives the rough ratios:
method call -- ~100s ns
synchronized method call -- ~1000s ns
reflective method call -- low ~10,000s ns
machine loopback -- ~30,000-150,000 ns
local sub-network -- 1-2 ms
internet -- 30-100 ms
ping 本地计算机和 ping 远程计算机是否会给您带来任何关系感? 方法调用当然是另一种测量。
does pinging your local machine and pinging a remote machine give you any sense of relationship? A method call would of course be the other measurement.