计算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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d57eca8d4f437f63eb547e6533a66a1b5d96a65348b20a874d1debb1c49d37dc |
|
MD5 | 4bdea81782e6b5671becf73bff7b6c26 |
|
BLAKE2b-256 | 92a1ac38929f530affa48023f049ca1f4da2d6bd2150deb1c92f833c5dd328de |