欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

【backtrader源码解析4】使用cython改写backtrader的第一个函数:time2num,效率提升2.2倍

时间:2023-05-28

第一次总是比较艰难的,踩过很多坑之后,终于改写成功第一个函数time2num了,效率大概提升了2.2倍。

run 100000 次,循环时间为:0.0006515979766845703,cython耗费时间为:0.012257814407348633,python耗费的时间为:0.027143001556396484,计算部分提升的倍数:2.214342675976893
run 1000000 次,循环时间为:0.006658792495727539,cython耗费时间为:0.1207892894744873,python耗费的时间为:0.2682640552520752,计算部分提升的倍数:2.2209258488000048
run 10000000 次,循环时间为:0.06927633285522461,cython耗费时间为:1.201690673828125,python耗费的时间为:2.6850152015686035,计算部分提升的倍数:2.2343646830637174

不算是效率特别高的提升,但是总体上还算是能够接受的程度。

实现流程 在backtrader/utils文件夹下,建一个cython_func.pyx用于保存需要编译的cython代码 在backtrader/utils文件夹下,编写一个setup.py,使用python setup.py build_ext --inplace进行编译 编译成功之后,使用python test_time2num.py cython_func.pyx代码

from cpython.datetime c

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。