TCP是同一主机中Go程序之间通信的最佳方法吗?

时间:2017-05-29 16:14:31

标签: http go tcp

假设我在localhost中运行了两个独立的Go程序,TCP是在性能方面在两个程序之间传输数据的最佳方法吗?

2 个答案:

答案 0 :(得分:1)

简短的回答是否定的。 TCP / IP堆栈很慢,尤其是TCP部分。因此,在性能方面,您最好使用本地进程间通信方法,例如应用程序或Unix套接字之间的共享内存。

如果您必须使用网络堆栈进行通信(例如,您计划在主机之间移动应用程序),则UDP或原始套接字是性能方面的最佳选择。

只有你:

  1. 必须使用网络
  2. 您需要一个可靠的通信渠道,然后TCP是一个不错的选择。
  3. 因此,请完成您的要求,并确定它是否是适合您的最佳方法。

答案 1 :(得分:0)

它可以工作并提供额外的自由,让两个程序在不同的计算机上运行。但就性能而言,它并不是最好的。

为了获得良好的性能,我想到了共享内存。 https://en.wikipedia.org/wiki/Shared_memory 也许你可以更准确地描述你想要做什么。