四行代码……那是四行代码 - 《波士顿日记》

  • 2024 年 6 月 30 日的记录,探讨四行代码的问题。之前此代码一直困扰着作者,检查后发现 TCP 服务比 TLS 服务耗时更多,尽管 TLS 在 TCP 上运行且生成的数据包是 TCP 的六倍。
  • 比较了 gopher 和 gemini 的 CPU、requests 等数据,通过分析 TCP 和 TLS 接口代码寻找原因。
  • 发现 TCP 实现中的一段代码while self.\_\_socket.sendqueue and ios.\_\_socket.sendqueue > 0 do... end不在 TLS 实现中,去除该代码后测试,结果 gopher 的 CPU 时间大幅减少,问题得到解决。
  • 解释了sendqueue字段及相关代码的作用和可能导致的问题,以及“write”事件代码的流程。
  • 提到该问题仅存在于本地(或 Unix)域套接字,对于 IP 套接字是错误的做法,找到根本原因并不容易,但修复很简单。
  • 最后介绍了关于此条目的讨论链接,包括 Lobsters、Hacker News 和 ZeroBytes 等。还提到了网站链接的格式及颜色 shading 的实验用途。
阅读 11
0 条评论