4

你对 Stackless Python 和 PyQt 有什么经验?

如果人们解决以下问题,我会很高兴:

  1. 为 Stackless 编译 PyQt:是否需要专门为 Stackless 编译 PyQt?编译顺利吗?绑定等问题

  2. 稳定性:是否有任何意外的崩溃、冻结、暂停和其他异常情况?

  3. 内存管理:内存泄漏的任何提示。Stackless/Plain Vanilla PyQt 应用程序所需的 RAM 比较

  4. 软件工程授权:Stackless-powered PyQt 应用程序的控制流模型的简短概述

  5. 经验教训:任何痛苦的教训,要避免的陷阱,要解决的问题,你可能遇到过

要开心

4

2 回答 2

0

如果您因为速度优化而对所有这些感兴趣:

您可能想查看Unladen Swallow此处为 Wikipedia)。谷歌(因为 YouTube 是 100% Python)正在为 Python 开发一个 JIT 编译器,它将使其速度提高 5-10 倍(使其比当前的虚拟机更接近 Java 速度)。最好的部分是它可以与所有现有的 Python 代码一起使用,这意味着您不必担心与其他 Python 优化项目相关的所有问题。

我希望,如果您正在开发一个足够大的项目以保证需要在低级别进行优化,那么您可以使用普通的 Python 进行开发,然后在 Unladen Swallow 投入生产时更换当前的 VM。

于 2010-01-04T18:48:29.887 回答
0

几个月前,我试图走这条路,但认为这不值得。

我能够针对无堆栈版本的 Python 运行 PyQt 的二进制安装(在 Windows 上),但我发现我必须手动进入并更改一些文件。我收到一条错误消息(对不起,我忘记了它是什么),并且谷歌搜索导致了几年前的解决方案。较新的代码不包含旧的修复程序,因此更改并不太困难,而且(如果我没记错的话)它是在 python 中,因此不需要重新编译。

但这对我来说是一个交易破坏者。Qt 更新定期发布,PyQt 更新也是如此,我不想不断地修复代码。Stackless 和 PyQt 根本没有一起使用,无法彻底检查。我发现难以调试问题的风险非常高。鉴于 stackless 的作者已经转向 PyPy,这一点尤其正确。让我提前道歉——我希望我有我为作者找到的参考资料,以停止在 stackless python 上的开发,以及更多关于我必须修复的错误的细节——我没想到会在 Stack Overflow 上重复细节。

所以我选择在普通 Python 上运行 PyQt,而不是无堆栈。

顺便说一句,我还认为将信号/插槽与无堆栈代码混合会令人困惑,因为它们是解决多线程问题的完全不同的方法。

祝你好运!

于 2010-01-12T06:40:11.777 回答