现在大多数 CPU 都支持超线程技术,但是具体这部分技术内容很少能查到资料。。现在能够肯定的是对于多线程并行的程序,超线程技术肯定是能够提高整体性能的(例如 Java )。。。
疑问就来了。。对于 Python 这种,并不能线程并行,更多的时候是采用多进程的方式来开发服务器端的应用。。那么这个时候超线程技术还有用么。。?
一些我已经试验过的结论: 在公司生产环境机器上, 16 核 32 线程的服务器,做同等的运算量(序列化之类的运算), 16 个进程所需要消耗的时间是大于开 25 个进程所消耗的时间的。。。但是如果开 32 个进程的话,所消耗的时间反而会大于 16 个进程消耗的时间。。 那么得出的结果是: 25 进程 > 16 进程 > 32 进程 (比较整体吞吐量)
貌似现在是可以直接关闭 Intel CPU 的超线程,这样再测试一下 16 个进程的吞吐量,但是这个操作起来比较麻烦,需要改 BIOS ,而我自己的笔记本貌似 BIOS 并没有提供这种功能。。。不不知道论坛里面有没有同志愿意来做一下类似的测试。。。。
其实问这个问题主要是想知道,在同等硬件环境下,对于 Python 服务端程序,应该启多少个进程是最优的。。。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.