使用PyInstaller创建的应用启动缓慢

我有一个用Python编写的应用程序,并与PyInstaller进行了“编译”。它还将PyQt用于GUI框架。

加载并显示主窗口之前,运行此应用程序大约有10秒钟的延迟。据我所知,这不是由于我的代码慢。相反,我怀疑这是由于Python运行时初始化引起的。

问题在于此应用程序是使用自定义laucncher /

taskbar应用程序启动的。用户将单击按钮启动该应用程序,看不到任何反应,然后单击另一个应用程序上的其他位置。当我的应用程序显示它的窗口时,由于SetForegroundWindow的规则,它无法进入前台。

我可以访问PyInstaller win32加载器,Python代码甚至启动器代码的源代码。

我的问题是:

  • 如何使该应用程序启动更快?

  • 我如何衡量流程生命周期的前几秒所花费的时间?

  • 减少显示第一个窗口所需时间的普遍接受的技术是什么?

我想避免添加启动画面,原因有二:一,我希望它没有帮助(开销在运行Python代码之前),二,我只是不喜欢启动画面:)

如果需要的话,我可能可以编辑PyInstaller加载程序存根以创建一个窗口,但这是我不希望采用的另一种方法。

回答:

我已经使用py2exe和cx_Freeze“编译”了一些wxPython应用程序,它们都不会花费超过4秒钟的时间来启动。

  • 您确定不是您的代码吗?也许有一些网络或一些I / O资源调用使您的应用程序停滞不前?
  • 您是否尝试过其他机器?有时,即使是最快的硬件也可能因使用错误的软件配置,应用或操作系统而变慢,请尝试一下。
  • 尝试使用timeit模块对其计时。

我从未使用过pyQT,但是使用wxPython时,启动速度还可以,并且在第一次初始化后,如果我再次关闭并再次打开,它的速度将比第一次快。

以上是 使用PyInstaller创建的应用启动缓慢 的全部内容, 来源链接: utcz.com/qa/419217.html

回到顶部