温馨提示×

ubuntu下python慢怎么优化

小樊
46
2026-09-13 11:42:33
栏目: 编程语言

在 Ubuntu 下如果觉得 Python 运行慢,可以从「环境、代码、依赖、工具」几个层面来优化。下面按实用性给你一套清单。


一、先确认“慢”在哪(很重要)

不要盲目优化,先定位瓶颈:

# 时间统计
time python script.py

# 性能分析
python -m cProfile -s cumulative script.py

# 更直观
pip install snakeviz
python -m cProfile -o out.prof script.py
snakeviz out.prof

常见慢点:

  • CPU 密集(计算)
  • IO 密集(文件 / 网络)
  • 错误使用库(例如 pandas 写法差)
  • Python 本身解释器慢

二、Python 环境层面的优化(最推荐先做)

1️⃣ 使用更快的 Python 解释器

Ubuntu 默认是 CPython,慢但兼容好。

可考虑:

  • PyPy(数值/循环多时明显快)
sudo apt install pypy3
pypy3 script.py
  • Conda / Mamba(科学计算推荐)
conda create -n fast python=3.11

2️⃣ 使用最新 Python 版本

Python 3.11+ 比 3.8 快 20–60%

python3 --version
sudo apt install python3.11

3️⃣ 使用虚拟环境(避免系统污染)

python3 -m venv venv
source venv/bin/activate

三、代码层面的优化(最有效)

1️⃣ 避免循环,用向量化(NumPy / Pandas)

❌ 慢:

result = []
for x in data:
    result.append(x * 2)

✅ 快:

import numpy as np
result = np.array(data) * 2

2️⃣ 用内置函数和生成器

sum(x for x in data)        # 生成器
list(map(int, strings))     # 比 for 快

3️⃣ 多线程 / 多进程

  • IO 多 → threading / asyncio
  • CPU 多 → multiprocessing
from multiprocessing import Pool

with Pool(8) as p:
    p.map(func, data)

4️⃣ 用 C 扩展 / JIT

  • Numba(数值计算神器)
from numba import njit

@njit
def f(x):
    return x ** 2
  • Cython
  • Rust + PyO3

四、依赖与系统优化

1️⃣ 使用编译好的二进制包

pip install numpy pandas --only-binary=:all:

2️⃣ 开启 Ubuntu 性能模式

sudo apt install cpufrequtils
sudo cpufreq-set -g performance

3️⃣ 使用 SSD & 足够内存

IO 慢常被误认为是 Python 慢。


五、常见场景速查表

场景 推荐方案
数据处理 NumPy / Pandas 向量化
爬虫 asyncio
计算密集 Numba / Cython / PyPy
Web 服务 异步框架 (FastAPI)
批量任务 multiprocessing

六、如果你愿意,我可以更具体帮你

你可以告诉我:

  1. Python 版本
  2. 做什么任务(爬虫 / 数据分析 / 训练模型 / Web)
  3. 慢在启动还是运行
  4. 是否用了 pandas / numpy

我可以直接给你针对性优化代码示例

0