【发布时间】:2021-12-06 07:06:29
【问题描述】:
我正在编写一个服务于数千个连接的高吞吐量服务器。假设我有 400 个字节要通过套接字发送。假设我有两种方式:
- 调用 Socket.Send() 40 次,每次发送 10 个字节。
- 调用 Socket.Send() 一次,发送 400 个字节。
这两种方式在速度、CPU 负载等方面有很大的不同吗?
【问题讨论】:
-
你可以测量它,但它不应该有所作为。
Send本质上是“将这些字节放入缓冲区”,何时将缓冲区中的字节发送到网络上的决定不受此控制。 -
调用任何你不必调用的函数都是低效的
-
@user253751 在技术上是正确的,但在许多情况下(当然不是所有情况)差异并不重要;与往常一样,正如 Damien 指出的那样:如果它可能很重要,那么你需要衡量它