向量化操作

技巧 说明 性能提升
使用NumPy向量化 避免循环,使用数组运算 10-100x
Pandas内置函数 使用apply/transform代替循环 5-20x
布尔索引 使用mask代替if判断 2-5x
groupby聚合 高效分组计算 3-10x

💾 内存优化

技巧 说明 效果
使用适当的数据类型 float32代替float64,category代替string 节省50%+内存
删除不需要的列 及时drop无用数据 减少内存占用
分块处理 使用chunksize读取大文件 避免内存溢出
稀疏矩阵 处理稀疏数据 大幅节省内存
及时释放变量 使用del和gc.collect() 优化内存使用

🚀 并行计算

工具 适用场景 使用方法
multiprocessing CPU密集型任务 ProcessPoolExecutor
concurrent.futures 简单并行任务 ThreadPoolExecutor
joblib 机器学习并行 Parallel(n_jobs=-1)
ray 分布式计算 @ray.remote
Dask 大数据处理 dask.delayed

🔧 编译加速

工具 说明 性能提升
Numba JIT编译Python代码 10-100x
Cython 编译为C扩展 50-200x
PyPy JIT Python解释器 2-5x
C/C++扩展 编写原生扩展 100-1000x

📊 数据库优化

技巧 说明 效果
批量插入 使用executemany代替循环插入 10-50x
索引优化 为常用查询字段创建索引 5-100x
分区表 按时间/类型分区 提升查询效率
连接池 重用数据库连接 减少连接开销
时序数据库 使用InfluxDB/TimescaleDB 大幅提升性能

🎯 算法优化

技巧 说明 效果
避免重复计算 缓存中间结果 减少计算量
使用高效数据结构 set代替list查找 O(n)到O(1)
提前过滤数据 减少处理的数据量 提升整体效率
使用生成器 节省内存 减少内存占用
算法复杂度优化 选择最优算法 大幅提升性能

🔍 性能分析工具

工具 用途 特点
cProfile 代码性能分析 内置,详细
line_profiler 逐行性能分析 精确到行
memory_profiler 内存使用分析 内存追踪
py-spy 实时性能监控 无侵入
snakeviz 可视化分析 图形界面
⚠️
优化原则

不要过早优化。先确保代码正确,再分析性能瓶颈,有针对性地进行优化。 优化后要进行充分的测试,确保功能不变。在可读性和性能之间找到平衡。