修复问题:¶
有问题的测试文件是:tests\add_tests/test_ind_psar.py tests\add_tests/test_ind_hurst.py
目前问题是:使用 pytest tests\add_tests/test_ind_psar.py tests\add_tests/test_ind_hurst.py 不并行的时候运行不报错 使用 pytest pytest tests\add_tests/test_ind_psar.py tests\add_tests/test_ind_hurst.py -n 3 这种并行模式,就开始报错
运行测试并获取错误原因,尝试修复¶
尝试修复相关的源代码
安装并重新运行¶
pip install -U .
pytest tests\original_tests/test_analyzer-sqn.py
如果还没通过,可以多按照上面的步骤尝试几次,也可以去和 master 版本进行对比分析,找到具体的 bug,按照下面步骤进行¶
对比目的¶
分析一下主分支和当前分支运行情况,主分支是正确的分支,当前分支是需要重构的分支,存在 bugs 和性能上的缺陷,这次尝试分析哪里导致了性能缺陷,并尝试修复
对比¶
切换到 remove-metaprogramming 分支,pip install -U . 安装当前分支的 backtrader,运行脚本进行对比
切换到 master 分支,pip install -U . 安装当前分支的 backtrader,运行脚本进行分析
对比相应的结果,分析一下 remove-metaprogramming 分支的代码是否存在问题,并尝试解决
性能的下降很可能是循环用的不对,本来一个 O(n)的循环变成了 O(n^2)的循环.分析是否使用了不必要的循环。