我注意到当我使用Matplotlib制作动画时,每个帧的保存时间会越来越长。我知道这一点,因为我在/usr/lib/pymodules/python2.7/matplotlib/backend_bases.py
的{{1}}方法中对print_figure
进行了时间检查:
FigureCanvasBase class
我花了一些时间来达到这一点,而且我现在已经达到收益递减的程度,因为print_method方法似乎是动态确定的。
有谁知道为什么保存动画的第100帧所需的时间要长得多,而不是第一帧?
我可以通过制作几个较短的动画然后将它们拼接在一起来避免这个问题,但是我宁愿首先理解为什么问题存在。
我会理解周期性地需要获得更多内存可能会导致周期性延迟以保存每个第n个图像,但不理解稳定的,几乎线性的速率,保存每个后续帧所需的时间增加。每次将新帧添加到动画时,是否由某种压缩引起?每次动画增长时是否重新分配内存?还是别的什么?