最佳答案
我有一个用 Python 编写并用 PyInstaller“编译”的应用程序,它还使用 PyQt 作为 GUI 框架。
运行此应用程序在加载主窗口之前有大约10秒的延迟,并显示。据我所知,这不是因为我的代码太慢。相反,我怀疑这是由于 Python 运行时的初始化。
问题是这个应用程序是从一个自定义的 laucncher/taskbar 应用程序启动的。用户将点击启动应用程序的按钮,看到什么都没有发生,然后点击另一个应用程序的其他地方。当我的应用程序显示它的窗口时,由于 SetForeground 窗口的规则,它不能出现在前台。
我可以访问 PyInstaller win32加载程序的源代码、 Python 代码,甚至是启动程序代码。
我的问题是:
我如何才能使这个应用程序启动得更快?
如何度量进程生命周期的前几秒花费的时间?
什么是普遍接受的技术,以减少时间,直到第一个窗口显示?
我想避免添加启动画面有两个原因: 第一,我希望它不会有帮助(开销是在运行 Python 代码之前) ; 第二,我只是不喜欢启动画面:)
如果需要的话,我可以编辑 PyInstaller 加载程序存根来创建一个窗口,但是这是我不愿意采用的另一种方法。