Windows7PHP+;Symfony2非常慢
这是一个我已经有很长时间的问题。我想在我的windows计算机上运行PHP应用程序,它的加载时间非常长,大约10-25秒。我试过很多东西: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
- 首先,我尝试了一个简单的XAMPP安装
- 我读WAMP可能更快,所以我也尝试了WAMP。它给了我同样的结果
- 然后我用PHP安装了一个nginx服务器,但也没有任何帮助
- 最后,我在VirtualBox中安装了Ubuntu11.10,并共享了包含我的项目的windows文件,但结果更糟:每次加载时间超过22秒
我曾经在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毫秒 步骤:
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