【发布时间】:2014-01-15 14:21:08
【问题描述】:
我有一个相当复杂的 python 应用程序,它使用 numpy、pandas、PySide、pyqtgraph 和 matplotlib 以及其他包。当我在 Windows 上将应用程序与 cx_Freeze 捆绑在一起时,它的大小为 349MB。
我的问题是生成的可执行文件的启动时间很长,大约 15 秒。当我说启动时间时,我的意思是执行任何代码之前的时间量。我有一个简单的脚本,可以将“Hello”打印到控制台,即使这样也需要大约 15 秒才能运行。
有谁知道这个问题的解决方案,或者有什么方法可以调试它?是不是因为很多包里有很多.dll文件,所以速度慢?
编辑: 使用名为Process Montor 的出色工具,我将问题缩小到 pytz 模块。在一个特定的负载上,花费了 20 秒来查询 library.zip(cx_Freeze 将所有已编译的字节码放在其中)以获取 pytz zoneinfo!我最近添加了 pandas 作为依赖项,而 pandas 使用 pytz。
查看此图片以获取 Process Monitor 输出的示例:
【问题讨论】:
标签: python windows dll cx-freeze