Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否有可能获得<;使用Drupal的200ms响应(无缓存)?_Php_Performance_Drupal_Caching - Fatal编程技术网

Php 是否有可能获得<;使用Drupal的200ms响应(无缓存)?

Php 是否有可能获得<;使用Drupal的200ms响应(无缓存)?,php,performance,drupal,caching,Php,Performance,Drupal,Caching,简单地说,问题就在标题中。可能吗 到目前为止,我对脚本语言的经验是,为了提高性能,您需要缓存所有内容,然后只为生成的HTML文件提供服务 对于某些用例来说,这是可以的,但是当您确实需要实时生成新页面时,这是不可能的 Drupal渲染某些网页(PHP执行时间,而不是DB)最多需要3秒(或更长!)。那太疯狂了。完全疯了 如果很多项目(比如Facebook)都在使用PHP,那么问题显然是我的。但谷歌搜索这个问题表明它很普遍。太普通了 (当然,我为PHP安装了APC。这当然有帮助,但PHP仍然非常慢)

简单地说,问题就在标题中。可能吗

到目前为止,我对脚本语言的经验是,为了提高性能,您需要缓存所有内容,然后只为生成的HTML文件提供服务

对于某些用例来说,这是可以的,但是当您确实需要实时生成新页面时,这是不可能的

Drupal渲染某些网页(PHP执行时间,而不是DB)最多需要3秒(或更长!)。那太疯狂了。完全疯了

如果很多项目(比如Facebook)都在使用PHP,那么问题显然是我的。但谷歌搜索这个问题表明它很普遍。太普通了

(当然,我为PHP安装了APC。这当然有帮助,但PHP仍然非常慢)

我必须假设这是Drupal/PHP的现实吗


谢谢。

简短的回答是“否”。但您为什么不想缓存

“实时生成新页面”是什么意思?经过身份验证的用户(任何登录的用户)都可以立即看到新内容。匿名用户可能需要等待一段时间(例如,如果您正在使用Boost),但是,您可以随时控制它,或者在添加新内容时刷新它。应该尽可能多地缓存

您可以安装Boost(静态HTML文件)、Memcache和启用Drupal缓存。这是值得鼓励的,尤其是最后一次。您还可以在服务器上运行nginx

您也可以尝试使用Pressflow,这是Drupal的替代品,可以提供更好的性能

这件事已经讨论过很多次了。。如果你愿意,你可以让Drupal非常快。查看一些2比特的文章:


利用可用的缓存方法将帮助您保持较低的托管成本,而不是在未优化的网站上投入更多硬件。

正如您所说,Facebook使用PHP,他们显然有理由需要良好的性能。他们的解决方案是为PHP编写自己的编译器,名为,并以开源形式发布。如果您担心PHP的性能,您应该尝试一下,因为它肯定会提高性能

缺点是它(还)没有覆盖100%的PHP函数集,因此一些PHP程序可能无法编译。我不知道Drupal在这方面的适用性,但值得一试——进行测试编译不会有任何损失;如果它不起作用,你就不会失去任何东西


类似地,Drupal社区中有一个项目将Drupal核心的一部分转换为PHP扩展,这意味着一些关键的Drupal函数将作为编译代码内置到PHP运行时。看。但请注意,这仍处于相当早期的开发阶段:它仍然被列为实验性的,并且只涵盖了少量的函数。不过,可能值得关注该项目。

根据,是的,使用Drupal无需缓存,您可以获得<200ms的响应时间。

我从一些朋友那里收到的关于Drupal加载性能的提示是安装不到40个模块

超过40个,特别是如果那些contrib模块使用了太多的挂钩和内存,那么性能就会降低

其他提示:

  • 删除生产站点上的
    imagecache ui
    视图ui
  • 如果可能,将
    htaccess
    置于
    vhost.conf
    上,这样启动时只调用一次
    htaccess
  • 使用油门模块
  • 对所有html、css和js文件使用gzip
  • 使用cdn模块和amazon服务器解决方案
  • 对站点的某些部分或块使用ajax
  • 最后,如果有足够的预算,迁移到oracle

注意:facebook.com使用AJAX,这是一个非常大的性能提升。当然这是可能的。这取决于什么样的机器!也许先看看Drupal优化技巧?它的插件系统可能非常繁重。此外,我还看到Drupal页面对每个请求执行700次数据库查询。这也是值得的investigating@Alin但是不要忘记,Drupal引导程序将分别为每个Ajax请求运行。主观印象会更快,但服务器的整体压力可能会增加FaceBook使用XHP:和HipHop:@Pekka I did。我已经实现了许多优化模块,并设置了我认为有用的配置。现在Drupal速度明显加快,但仍然非常慢。即使在我的本地计算机(MBP 2.6Ghz 8GB)中,您可能无法缓存的一个原因是,如果您有一个要在每个页面上显示的动态内容块。我现在正与这个问题作斗争;我很想使用缓存,但我们需要动态功能,我发现没有一个缓存解决方案能够使用它。请看我的问题:是的。我忘了提到块缓存是一件棘手的事情,但是有一些模块通过ajax请求块来解决这个问题,比如ajax块: