修复问题:

有问题的测试文件是: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 和性能上的缺陷,这次尝试分析哪里导致了性能缺陷,并尝试修复

对比

  1. 切换到 remove-metaprogramming 分支,pip install -U . 安装当前分支的 backtrader,运行脚本进行对比

  2. 切换到 master 分支,pip install -U . 安装当前分支的 backtrader,运行脚本进行分析

  3. 对比相应的结果,分析一下 remove-metaprogramming 分支的代码是否存在问题,并尝试解决

  4. 性能的下降很可能是循环用的不对,本来一个 O(n)的循环变成了 O(n^2)的循环.分析是否使用了不必要的循环。