写了个 go 程序, 然后发现 50 多个链接的时候,就占了 20%的 CPU (阿里云双核 4G)
profile 了下, 发现 20% 被 futex 占据
970ms 21.85% 21.85% 970ms 21.85% runtime.futex
怀疑 futex 是 spinlock (不断的尝试获取锁), 然后查找到这篇文章,说futex 支持futex_wake
和futex_wait
就是说,futex 是支持唤醒机制的,那么为什么会占据那么多的 CPU
谢谢
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.