You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

相同硬件下Linux(Pop OS 22.04LTS)的Python运行速度远慢于Windows 10的问题咨询

Linux下Python运行速度慢于Windows的排查与优化方案

针对你在Pop!_OS 22.04 LTS上运行Iterative deepening Boolean Negamax算法时速度远慢于Windows的问题,以下是具体的排查和优化步骤:


1. 先确保基准测试的一致性

  • 保证两次运行完全相同的代码和输入数据,临时关闭所有print类输出(终端IO速度差异会严重影响耗时)。
  • 关闭双系统中所有后台不必要的程序/服务,确保CPU、内存资源充足。

2. 检查Python编译优化等级

系统自带的Python可能未启用最高级编译优化,而微软商店的Python通常用MSVC做了深度优化。

  • 查看Linux Python的编译参数:
    python3 -c "import sysconfig; print(sysconfig.get_config_var('CFLAGS'))"
    
    如果输出中没有-O3或--enable-optimizations,建议自行编译优化版Python:
    # 安装编译依赖
    sudo apt install build-essential libssl-dev zlib1g-dev libreadline-dev libsqlite3-dev libffi-dev
    # 下载Python 3.10源码并编译
    wget https://www.python.org/ftp/python/3.10.12/Python-3.10.12.tgz
    tar xzf Python-3.10.12.tgz && cd Python-3.10.12
    ./configure --enable-optimizations --with-lto CFLAGS="-O3"
    make -j12  # 5900X为12核,按需调整核心数
    sudo make altinstall
    
    用编译后的python3.10重新运行测试。

3. 调整CPU调度与进程优先级

  • 以高优先级运行程序:
    nice -n -10 python3 your_script.py
    
  • 切换CPU到性能模式(避免节能调度限制性能):
    # 查看当前调度模式
    cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
    # 设置为性能模式
    sudo cpupower frequency-set --governor performance
    
    测试完成后可切回节能模式:sudo cpupower frequency-set --governor powersave

4. 排查垃圾回收(GC)的影响

递归算法可能频繁触发GC拖慢速度,可临时禁用GC测试:

import gc
gc.disable()
# 运行你的算法代码
gc.enable()

如果速度提升明显,可调整GC阈值减少触发频率:

gc.set_threshold(500000, 5000, 5000)

5. 用性能分析工具定位热点

用cProfile找出代码中耗时最高的部分,对比双平台差异:

  • Linux上运行:
    python3 -m cProfile -s cumulative your_script.py
    
  • Windows上运行:
    python -m cProfile -s cumulative your_script.py
    
    重点关注递归调用、循环逻辑的耗时差异,针对性优化(比如用循环替代递归、用局部变量减少属性查找开销)。

6. 尝试PyPy替代CPython

PyPy对算法密集型代码的优化远优于CPython,尤其适合递归场景:

sudo apt install pypy3
pypy3 your_script.py

内容的提问来源于stack exchange,提问作者Flyrobot27

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 20:55:10