【问题标题】:Python execution speed: laptop vs desktopPython 执行速度:笔记本电脑 vs 台式机
【发布时间】:2011-04-25 18:59:19
【问题描述】:

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

  • 解析文本
  • 填充字典
  • 根据结果数据计算一些函数

该程序仅使用 CPU、RAM 和 HDD:

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

同样的程序运行在:

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

CPU 的频率提高了 1.44,HDD 的基准分数提高了 4 倍(Passmark - Disk Mark)。我发现该程序在桌面上的运行速度快了大约 1.66 倍。显然,CPU 是瓶颈。

i7 Core 与 Intel Core2 Duo 架构相比似乎只有 15% 的优势(大部分性能提升是由于直接的 CPU 频率)。我可以在代码中做些什么来增加新架构的好处吗?


编辑:忘了提到我使用 ActivePython 3.1.2 如果这很重要。

【问题讨论】:

  • 在脚本运行时监视任务管理器。 python脚本是否使用两台计算机上整个核心的cpu负载? (100%/核心数 = 一个核心的百分比)
  • 好主意!是 13%...所以只使用了一个核心。

标签: python performance intel


【解决方案1】:

硬件性能的提高在大多数情况下会自动为用户应用程序带来好处。备受诟病的“GIL”意味着您可能无法通过 CPython 来利用多核,除非您将程序设计为通过各种多处理模块/库来利用。

同样的讨论:Does python support multiprocessor/multicore programming?

python wiki 上的相关解决方案整理:http://wiki.python.org/moin/ParallelProcessing

【讨论】:

    【解决方案2】:

    将您的处理分成多个线程。您的特定 i7 应该能够支持多达 8 个并行线程。

    【讨论】:

      【解决方案3】:

      考虑在常规 HDD 上重复 - SSD 很可能会导致显着的性能差异,具体取决于缓存和数据的性质。

      【讨论】:

        猜你喜欢
        • 2015-01-14
        • 1970-01-01
        • 1970-01-01
        • 2011-02-25
        • 1970-01-01
        • 2020-09-10
        • 1970-01-01
        • 2010-11-04
        • 1970-01-01
        相关资源
        最近更新 更多