如何进一步优化Python回测程序中的Cython核心函数?
Python回测程序性能优化求助:Cython加速仍未达标
我正在开发一款Python回测程序,目前急需稳定的性能提升。已通过Cython实现200倍加速,但仍无法满足需求——全量数据运行需约16小时,且需多次执行。经cProfile分析,核心函数tp_sl_back_test占据了98%-99%的运行时间。
作为Cython新手,我已尝试以下优化但效果不佳:
- 将类型声明从
np.ndarray[np.float64_t, ndim=2] data改为double[:, :],优化效果甚微 - 调整核心函数内的条件判断逻辑,仍无法达到至少800倍加速的目标
- 尝试添加
-O3编译优化标志时遇到D9002错误,尚未测试Numba方案
关键参考信息
- 测试数据:单资产4小时周期数据,共2892行,需测试多组不同参数
- 调用频次:核心函数
tp_sl_back_test被其他Cython函数调用20000次 - 相关资源:初始及优化后的Cython代码、完整pyx文件、参数生成逻辑、测试数据、主测试文件
内容的提问来源于stack exchange,提问作者Maksym Machkovskiy
相关产品推荐
相关产品推荐

