第一次总是比较艰难的,踩过很多坑之后,终于改写成功第一个函数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