为什么Python zip应用程序越大就越慢



我有一个python zip应用程序(特别是pdm(。从文件系统运行时,仅显示帮助页面就需要0.300s左右的时间。然而,对于我的zipapp,它是1s。ziapp大约有25 MB(它包含了所有的依赖项(。

在未压缩的zip中获取文件应该和读取文件一样快,因为有一个索引可以告诉你在文件中的位置。

编辑:我能够重新设计我的代码,以便能够使用cProfile进行评测。似乎额外的0.6秒是用compile度过的,但我不确定是什么。

我想明白了——无论出于什么原因,zipimport都不会在zip中的__pycache__中查找,所以它每次都会重新编译源文件。用相应的pyc文件替换这些文件可以很好地工作,并将执行速度提高到正常的模块速度。

相关内容

最新更新