对无负载燕子的看法?

33 投票
7 回答
2955 浏览
提问于 2025-04-15 11:05

你对谷歌的Unladen Swallow项目有什么看法和期待呢?根据他们的项目计划:

我们想让Python变得更快,同时也希望让大型、成熟的应用程序能够轻松切换到Unladen Swallow。

  1. 制作一个速度至少比CPython快5倍的Python版本。
  2. Python应用的性能应该保持稳定。
  3. 与CPython应用保持源代码级的兼容性。
  4. 与CPython扩展模块保持源代码级的兼容性。
  5. 我们不想永远维护一个Python实现;我们把我们的工作看作是一个分支,而不是一个分叉。

更令人兴奋的是:

此外,我们打算去掉全局解释器锁(GIL),并改善Python中的多线程状态。我们相信通过实现更复杂的垃圾回收(GC)机制,这是可能的。

这看起来几乎太美好了,像是把PyPy和Stackless的优点结合在一起。

更多信息:

更新:正如DNS所指出的,有相关问题:什么是LLVM,替换Python虚拟机为LLVM是如何提高速度5倍的?

7 个回答

4

我觉得这个项目的目标很高尚,如果给他们足够的时间(大约2-3年),他们可能会实现大部分目标。

不过,他们可能无法把自己的分支合并回主干,因为Guido目前的看法是,CPython应该是一个参考实现(也就是说,它不应该做一些IronPython和Jython无法复制的事情)。我看到过一些报告,提到这就是为什么Stackless的一些很酷的部分没有被合并到CPython中的原因。

12

很抱歉让你失望,但当你阅读PEP 3146时,情况看起来不太乐观。

目前的改进非常有限,因此编译器的代码变得更加复杂。而且,去掉全局解释器锁(GIL)也有很多缺点。

顺便提一下,在一些测试中,PyPy似乎比Unladen Swallow更快。

17

我对这个项目充满期待。

  1. 这个项目有好几个谷歌的人在参与。因为这个项目的负责人也在谷歌工作,所以这是一件好事。

  2. 一开始,他们就说明这是一个分支,而不是一个完全独立的项目。所以有可能这个分支最终会合并回主项目。

  3. 最重要的是,他们已经有一个可以用的版本。他们现在正在用一个叫“unladen swallow”的版本来处理YouTube的相关内容。

他们似乎把事情安排得井井有条。现在这个阶段,他们有一个相对详细的项目计划,还有一份测试清单,用来评估性能的提升和问题。

虽然我对去掉GIL(全局解释器锁)不抱太大希望,但即使他们没能做到这一点,光是速度的提升就已经很棒了。

撰写回答