跳转到主要内容

计算Zope的最佳解释器检查间隔

项目描述

计算运行机器上的最佳解释器检查间隔。公式如下

<result of pystone benchmark> / 50

安装和使用

检查间隔脚本必须安装到用于运行Zope的Python解释器中。这最简单的方法是通过向您的buildout.cfg文件中添加一个部分来实现

[buildout]
parts = checkinterval

[checkinterval]
recipe = zc.recipe.egg
eggs = jarn.checkinterval

重新运行buildout后,输入

$ ./bin/checkinterval
1305

您看到的数字是该机器推荐的检查间隔;将其放入您的zope.conf文件中

python-check-interval 1305

现在重新启动Zope,并享受它的光芒。

为什么要关心?

有关检查间隔主题的Python库参考:“此整数值确定解释器检查周期性事物(如线程切换和信号处理程序)的频率。默认值为100,表示每100个Python虚拟指令执行一次检查。将其设置为更大的值可能会提高使用线程的程序的性能。”

现在,Zope应用程序服务器就是这样一种程序,并且它从设置正确的检查间隔中受益很大。如果值太低,Zope线程将被不必要地中断,这会在今天的多CPU硬件上造成明显的性能下降。

50从何而来?

公式中的常数50是通过Zope公司进行的基准测试确定的,并已成为“Zope传说”的一部分(例如,参见Matt Kromer的这篇帖子)。超过pystone/50并没有产生更多的收益。

该值可能对Zope以外的应用程序和Intel以外的平台没有意义。

背景

有关检查间隔和GIL的更多信息,请参阅David Beazly

对于从Beazly演讲回来的人来说:Zope使用长时间运行的线程和asyncore,这使得它(更)独立于操作系统调度问题。尽管如此,中断论点仍然成立。

变更日志

1.0 - 2009-06-13

  • 初始版本

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

jarn.checkinterval-1.0.zip (8.1 kB 查看哈希值)

上传时间

由以下支持