为什么 PyQt 应用程序启动这么慢?
C++ 速度很快。 Qt 很快。 Python解释器启动速度相对较快(在我的电脑上2-3秒)。 PyQt 是 Qt 的薄包装。为什么 PyQt 应用程序启动(大约 80 行,即使是 .pyc 形式)如此慢(6-12 秒)?我对造成这种情况的原因很感兴趣,最重要的是,对改善这种情况的方法很感兴趣。
C++ is fast. Qt is fast. Python interpreter startup is relatively fast (2-3 seconds on my computer). PyQt is thin wrapper around Qt. Why then PyQt app startup (about 80 lines, even in .pyc form) is so slow (6-12 seconds)? I'm interested in reasons for this and, most importantly, ways to improve this situation.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Qt 4.6.3 中存在一个已知错误,该错误会影响应用程序的启动时间。也许 4.4.3 也受到影响。尝试升级到 4.7.0,它修复了该错误。
您的问题也可能来自动态库重定位。如果您自己编译 Qt 或 Python,请尝试为它们提供与默认值 (0x10000000) 不同的基地址,以防止在两个库一起加载时发生重定位。
在 Linux 下,您可以使用 prelink,但据我所知,它在 Windows 上没有等效项。
There is a known bug in Qt 4.6.3 that cripples application start times. Maybe 4.4.3 is also affected. Try to upgrade to 4.7.0, which fixes that bug.
Your problem might also come from dynamic library relocation. If you compile either Qt or Python yourself, try to give them a base address different from the default (0x10000000), to prevent relocation to occur when the two libraries are loaded together.
Under Linux, you could have used prelink, but to my knowledge it has no equivalent on Windows.