Python执行速度:笔记本vs台式机

4 投票
3 回答
2052 浏览
提问于 2025-04-16 05:31

我正在运行一个简单的数据处理程序:

  • 解析文本
  • 填充字典
  • 对结果数据进行一些计算

这个程序只使用了CPU、内存和硬盘:

  • 通过Windows命令行运行
  • 输入/输出到本地硬盘
  • 没有在屏幕上显示或打印任何内容
  • 没有网络连接

同样的程序在以下设备上运行:

  • 台式机:Windows 7,超频到3.6 GHz的i7-930 CPU(内存速度匹配),Intel X-25M SSD
  • 笔记本:Windows XP,Intel Core2 Duo T9300 @2.5GHz,7200转硬盘

台式机的CPU频率快1.44倍,硬盘的基准分数(Passmark - Disk Mark)高出4倍。我发现这个程序在台式机上运行速度大约快1.66倍。所以显然,CPU是瓶颈。

看起来i7 Core和Intel Core2 Duo架构之间的性能提升只有15%(大部分性能提升是由于CPU频率的直接提高)。我可以在代码中做些什么来增加新架构的优势吗?


补充说明:我使用的是ActivePython 3.1.2,如果这有影响的话。

3 个回答

0

考虑在普通硬盘上重复这个操作——使用固态硬盘(SSD)可能会导致性能差异很大,这取决于缓存和数据的类型。

0

把你的处理任务分成多个线程来进行。你这款i7处理器应该可以同时支持最多8个线程一起工作。

6

硬件性能的提升通常会自动给用户的应用程序带来好处。不过,大家常常提到的“GIL”这个东西,意味着如果你用的是CPython(Python的一种实现),那么在多核处理器上,你可能无法充分利用这些核心,除非你特别设计你的程序,使用一些多进程的模块或库来实现。

关于这个话题的讨论可以在这里找到: Python支持多处理器和多核编程吗?

还有一个相关的解决方案汇总在Python的维基上: http://wiki.python.org/moin/ParallelProcessing

撰写回答