我有一个用 Python 编写并使用 PyInstaller“编译”的应用程序。它还使用 PyQt 作为 GUI 框架。
在主窗口加载并显示之前,运行此应用程序有大约 10 秒的延迟。据我所知,这不是由于我的代码运行缓慢。相反,我怀疑这是由于 Python 运行时初始化造成的。
问题是这个应用程序是使用自定义启动器/任务栏应用程序启动的。用户将单击按钮以启动应用程序,看到没有任何反应,然后单击另一个应用程序的其他位置。当我的应用程序显示它的窗口时,由于 SetForegroundWindow 的规则,它无法进入前台。
我可以访问 PyInstaller win32 加载程序、Python 代码甚至启动器代码的源代码。
我的问题是:
我怎样才能让这个应用程序启动得更快?
如何衡量流程生命周期的前几秒所花费的时间?
在显示第一个窗口之前减少时间的普遍接受的技术是什么?
我想避免添加启动画面有两个原因 - 一,我希望它不会有帮助(开销是在 Python 代码运行之前),二,我只是不喜欢启动画面 :)
如果需要,我可能会编辑 PyInstaller 加载程序存根以创建一个窗口,但这是我不想采取的另一条路线。