mem*_*ecs 15 python performance adobe matplotlib
进口时间长得令人无法接受:
from matplotlib import pylab as plt --> 3.0124739 secs
Run Code Online (Sandbox Code Playgroud)
这是cProfile的输出,它清楚地显示了问题是afm.py,它是Adobe Font Metrics的一些接口..Matplotlib版本是1.4.0 - Ubuntu 14.04
5994612 function calls (5992123 primitive calls) in 4.702 seconds
Ordered by: internal time
ncalls tottime percall cumtime percall filename:lineno(function)
182 1.589 0.009 2.372 0.013 afm.py:220(_parse_kern_pairs)
215 0.746 0.003 1.420 0.007 afm.py:180(_parse_char_metrics)
1297990 0.410 0.000 0.410 0.000 {method 'split' of 'str' objects}
839978 0.288 0.000 0.288 0.000 {method 'readline' of 'file' objects}
2 0.254 0.127 4.185 2.093 font_manager.py:544(createFontList)
843308 0.170 0.000 0.170 0.000 {method 'startswith' of 'str' objects}
114276 0.168 0.000 0.205 0.000 afm.py:72(_to_list_of_floats)
1563800 0.125 0.000 0.125 0.000 {len}
839220 0.117 0.000 0.117 0.000 {method 'rstrip' of 'str' objects}
115290 0.116 0.000 0.119 0.000 {method 'decode' of 'str' objects}
117775 0.086 0.000 0.086 0.000 afm.py:56(_to_int)
20 0.061 0.003 0.061 0.003 {built-in method poll}
520 0.040 0.000 0.040 0.000 {method 'get_sfnt' of 'FT2Font' objects}
6910 0.036 0.000 0.036 0.000 {posix.stat}
3372 0.025 0.000 0.038 0.000 posixpath.py:336(normpath)
Run Code Online (Sandbox Code Playgroud)
知道如何修复/禁用它吗?
编辑:
回滚到1.3.1节省了我的一天.现在运行时间为0.2秒.
小智 16
我有同样的问题.我想,当你升级matplotlib到更新版本时就会发生这种情况.字体缓存文件与新版本不兼容,但显然没有重新创建.而是每次动态创建字体列表.解决方案是删除matplotlib缓存目录(在我的例子中~/.cache/matplotlib)