简单地说,问题是标题中的问题。有可能吗?
到目前为止,我使用脚本语言的经验是,为了提高性能,您需要缓存所有内容,然后才能提供生成的HTML文件。
对某些用例来说没问题,但是当你真的需要实时生成一个新页面时,这是不可能的。
Drupal最多需要3秒钟(或更长时间!)来渲染一些网页(PHP执行时间,而不是数据库)。太疯狂了。完全疯了。
如果许多项目(如Facebook)使用PHP,显然问题是我的。但谷歌搜索这个问题表明这是常见的。太常见了。
(当然我为PHP安装了APC。它确实有帮助,但PHP仍然超慢)。
我必须假设这是Drupal / PHP的现实吗?
感谢。
答案 0 :(得分:4)
简短的回答是否定的。但是你为什么不想缓存?
“实时生成新页面”是什么意思?经过身份验证的用户(登录的任何人)都可以立即看到新内容。匿名用户可能需要等待一段时间(例如,如果您正在使用Boost),但是,您可以随时控制它,或在添加新内容时刷新它。您应该尽可能多地缓存。
您可以安装Boost(静态HTML文件),Memcache,并启用Drupal缓存。鼓励,特别是最后一个。您也可以在服务器上运行nginx。
您也可以尝试使用Pressflow,它是Drupal的替代品,可以提供更好的性能。
已多次讨论过..如果你愿意的话,你可以让Drupal非常快。查看一些2bits文章:
http://2bits.com/contents/articles
利用可用的缓存方法可以帮助您降低托管成本,而不是在未经优化的网站上投放更多硬件。
答案 1 :(得分:2)
正如你所说,Facebook使用PHP,他们显然有理由需要良好的性能。他们的解决方案是编写自己的PHP编译器HipHop,它们作为开源发布。如果你担心PHP的性能,你应该试一试,因为它肯定会改进。
缺点是它(尚未)覆盖100%的PHP函数集,因此某些PHP程序可能无法编译。我不知道Drupal在哪里适合这个,但是值得尝试一下 - 通过测试编译没有什么可以丢失的;如果它不起作用,你就不会丢失任何东西。
类似地,Drupal社区中有一个项目将Drupal Core的部分转换为PHP扩展,这意味着一些关键的Drupal函数随后作为编译代码内置到PHP运行时。请参阅project page here。但请注意,这仍然处于相当早期的开发阶段:它仍然被列为实验性的,并且仅涵盖少量功能。不过,可能值得关注这个项目。
答案 2 :(得分:0)
根据http://groups.drupal.org/node/34076,是的,你可以得到一个<没有缓存的Drupal响应时间为200ms。
答案 3 :(得分:0)
我从一些朋友那里收到的有关Drupal负载性能的提示是安装少于40个模块。
超过40个,特别是如果那些贡献模块使用过多的钩子和内存,性能会降低。
其他提示:
imagecache ui
和views ui
htaccess
放在vhost.conf
上,这样htaccess
只会在启动时被调用一次