Windows7PHP+;Symfony2非常慢

Windows7PHP+;Symfony2非常慢,php,performance,windows-7,apache2,page-load-time,Php,Performance,Windows 7,Apache2,Page Load Time,这是一个我已经有很长时间的问题。我想在我的windows计算机上运行PHP应用程序,它的加载时间非常长,大约10-25秒。我试过很多东西: 首先,我尝试了一个简单的XAMPP安装 我读WAMP可能更快,所以我也尝试了WAMP。它给了我同样的结果 然后我用PHP安装了一个nginx服务器,但也没有任何帮助 最后,我在VirtualBox中安装了Ubuntu11.10,并共享了包含我的项目的windows文件,但结果更糟:每次加载时间超过22秒 更新:我甚至尝试过APC-它改进了一点,但仍然是6

这是一个我已经有很长时间的问题。我想在我的windows计算机上运行PHP应用程序,它的加载时间非常长,大约10-25秒。我试过很多东西:

  • 首先,我尝试了一个简单的XAMPP安装
  • 我读WAMP可能更快,所以我也尝试了WAMP。它给了我同样的结果
  • 然后我用PHP安装了一个nginx服务器,但也没有任何帮助
  • 最后,我在VirtualBox中安装了Ubuntu11.10,并共享了包含我的项目的windows文件,但结果更糟:每次加载时间超过22秒
更新:我甚至尝试过APC-它改进了一点,但仍然是6-8秒/页

我将文件上载到linux服务器(共享主机),在该服务器上运行大约300-500毫秒。在XAMPP安装上,我尝试运行其他(即不是Symfony2)应用程序(例如phpmyadmin),这些应用程序也比共享主机慢,但不是非常慢,加载时间为2-3秒。在我改用Linux作为主要操作系统之前,我如何提高性能?我有一台配备i7CPU、4GB内存、5400RPM硬盘、Win7x64的笔记本电脑

谢谢你的帮助

UPDATE2:由于某种神秘的原因,我的Symfony路由无法与fcgid一起工作(它给了我一个404错误),所以我回去使用PHP作为模块。现在,它已经成为有史以来最糟糕的(比以前作为一个模块更糟):应用模式20-25秒,在开发模式下,每次超过30秒,所以我得到一个超时错误,无论启用或不启用APC,情况都是一样的

您可以看到这个错误。这是可复制的:每次在30秒内到达不同的执行点时:


我曾经在XP和Server 2003上遇到过类似的symfony 1问题。解决方案是安装一个PHP加速器(对于我们来说,eAccelerator,APC可能是现在更好的选择)加上FastCGI/fcgid

附录:我已经很久没有在Windows上使用Apache了。我普遍认为,它的业绩一直在稳步好转,而不是恶化;然而,与大多数不寻常的设置一样,无法保证良好的结果。根据我之前的评论,我建议你在问你的问题,我以前在那里收到了一些很好的专家建议


如果内存正常,他们可以为您提供免费的Apache二进制文件,该文件使用比Apache网站上提供的标准文件更好的工具编译。

我认为您在缓存机制方面存在问题。 检查app\cache目录。 必须有一个名为dev的文件夹。 如果不存在或为空,请检查文件夹权限。
当我删除app\cache目录下的dev和prod目录时,加载页面需要18秒,但之后只需要500毫秒。

几年前,我遇到了同样的问题。你在后台运行哪种防病毒软件? 尝试出于开发目的停用或更改它。它也可能是一些在后台运行的索引服务。Symfony 2由超过15000个文件组成,其中包含供应商:) 还可以尝试用经典的方式从头重新安装Windows。
我的网站通常需要100-500毫秒,我的笔记本电脑比你的慢。(英特尔C2D P8600)

页面加载时间也取决于CSS+JS+图像加载时间。我在CakePHP中遇到了同样的问题,通过在htaccess中使用
mod_expires
解决了这个问题

您在服务器htaccess文件中尝试过CSS、JS和图像的“ExpiresByType”吗?查看页面。

只是猜测(可能不是正确的猜测),但可能与MySQL有关。看看您如何提到PhpMyAdmin和Symfony 2作为您测试的PHP应用程序,它们都依赖于MySQL(假设您在Symfony 2中设置了MySQL)。你在帖子中没有提到这一点,但是在你的VirtualBox设置中,你有没有让Ubuntu上运行的脚本连接到Windows主机上的MySQL服务器

您可以查看一些性能测试脚本,看看这些脚本是否在时间方面表现更好

你可以尝试的另一件事是使用,看看你是否发现某些函数占用了太多的时间


我肯定会把这个问题作为我的最爱,因为我太好奇了,不知道它现在是什么:)祝你好运

使用Ubuntu CD启动选项附带的内存测试应用程序检查计算机随机访问内存、RAM或运行该应用程序

在这两种情况下,选择所谓的额外测试或深度测试-我不记得很清楚-无论如何,选择时间更长的测试。这种测试没有结束,你只需等待测试完成两个阶段,通常情况下,RAM出现任何问题

另外,用任何检查方法检查硬盘。之后,尝试执行磁盘碎片整理


我知道,您的问题是硬件相关问题。

更新:

由于PHP5.5现在集成了PHPOPCache,这加快了执行时间。在我的设置中,使用数据库访问的完整请求现在需要180毫秒

步骤:

  • 更新至php的最新版本
  • 启用操作缓存
  • 禁用xdebug
  • 如DemonTPx所述,将realpath\u cache\u size设置为2M
  • php.ini设置:

    realpath_cache_size = 2M
    [XDebug]
    xdebug.profiler_enable = 0
    xdebug.remote_enable = 0
    [opcache]
    zend_extension = "C:\xampp18\php\ext\php_opcache.dll"
    opcache.enable = 1
    opcache.enable_cli = 0
    opcache.memory_consumption = 128
    opcache.interned_strings_buffer = 8
    opcache.max_accelerated_files = 4000
    
    为什么Windows比Unix慢?


    如前所述,PHP在文件中的速度非常慢,Windows上的filemtime()也是如此。因为Symfony2经常在开发模式下使用这些函数。我们不会低于700ms(在中,我有完全相同的问题。在php.ini中设置以下内容将性能从~800ms提高到~300ms:

    php.ini:

    realpath_cache_size = 2M
    

    仍然不是我从unix机器上获得的~100毫秒,但它至少会带来不同

    哇,在尝试了许多不同的事情之后,我终于成功地在windows7上使用wamp将执行时间从15秒改为3秒

    如何安装wincache扩展:

    下载wincache dll的位置:

    My php.ini配置更改:<
    [PHP]
    realpath_cache_size = 2M
    extension=php_wincache.dll
    ; XDEBUG Extension
    ;zend_extension = "C:/Net Generation/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11.dll"
    ;
    [xdebug]
    xdebug.remote_enable = off
    xdebug.profiler_enable = Off
    xdebug.profiler_enable_trigger = off
    xdebug.profiler_output_name = cachegrind.out.%t.%p
    xdebug.profiler_output_dir = "C:/Net Generation/wamp/tmp"
    xdebug.show_local_vars=0
    xdebug.max_nesting_level=200
    
    [opcache]
    zend_extension = "C:/Net Generation/wamp/bin/php/php5.5.12/ext/php_opcache.dll"
    opcache.enable = 1
    opcache.enable_cli = 0
    opcache.memory_consumption = 128
    opcache.interned_strings_buffer = 8
    opcache.max_accelerated_files = 4000