Windows上的PHP,XAMPP运行速度太慢了100倍

2022-08-30 20:44:55

PHP在我的Windows桌面上运行得非常慢,以至于phpMyAdmin需要几分钟才能打开数据库。以下是运行简单 PHP 测试程序的时间比较:

  • 运行 XAMPP 的 Windows 8.1 计算机: 3597 毫秒
  • iPage共享主机: 65 毫秒
  • A2托管共享主机: 26 ms

这是测试程序...

<?php
$rStartTime = microtime(true);
$countTo = 100000;
$a = 0;
//$countTo = $countTo * 100;
for ($x = 0; $x <= $countTo; $x++) {
    $a = sqrt(pow($x, 2));
}
$rMs = floor((microtime(true) - $rStartTime) * 1000);
echo 'timer done, countTo=' . $a . ' ms=' . $rMs;

测试程序无需调试即可运行,方法是在 Firefox 中输入“http://localhost/timer.php”。

本地计算机通常速度极快。它正在运行...

  • Windows 8.1
  • XAMPP 1.8.3 (控制面板 v3.2.1)
  • Apache 2.4.4 (最新版本为 2.4.20)
  • 5.5.3 菲律宾比索
  • 反恶意软件 = Windows Defender
  • IDE = PHPStorm 10.0.2

是什么让PHP运行得这么慢?


答案 1

我发现问题是xampp\php\php中的Xdebug.ini。以下是尝试在 Web 上找到的许多解决方案的结果:

以管理员身份运行 XAMPP 并重新启动服务器:3617 毫秒

在 xampp/apache/conf/httpd.conf 中,将 localhost 替换为 127.0.0.1 并重新启动服务器:3639 毫秒

在 Windows/System32/drivers/etc/hosts 中,添加“127.0.0.1 127.0.0.1”和“127.0.0.1 localhost”并重新启动 Windows:3960 毫秒

在 Windows/System32/drivers/etc/hosts 中,取消注释“127.0.0.1 localhost”并重新启动 Windows:3659 毫秒

在 php.ini 中,取消注释 zend_extension = “C:\xampp\php\ext\php_eaccelerator_ts.dll”并重新启动服务器:3643 毫秒

在 php.ini 中,设置 xdebug。remote_enable=0: 3598 ms

在 php.ini 中,设置 remote_host=“localhost”: 3593 毫秒

在 php.ini 中,设置 xdebug。profiler_enable=0: 249 ms

在 php.ini 中,注释掉所有 Xdebug 语句:27 毫秒 - 成功!

可悲的是,我犯了错误,需要Xdebug:-(


答案 2

我用xdebug idekey设置(xdebug.idekey=“xdebug1”)和chrome extension xdebug helper(https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc)

*不要忘记禁用remote_autostart(xdebug.remote_autostart = 0)

仅通过请求激活调试(xdebug),使用idekey设置,因此如果调试不需要php处理可以更快/正常,通过带有chrome扩展名的按钮进行切换

我在Windows 10 64bit上使用xampp 1.8.3,我使用自定义idekey,xdebug.idekey=“xdebug1”,与xdebug助手设置相同

[XDebug]
zend_extension = "E:\xampp183\php\ext\php_xdebug.dll"
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "E:\xampp183\tmp"
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_autostart=0
xdebug.idekey="xdebug1"
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
xdebug.trace_output_dir = "E:\xampp183\tmp"
xdebug.remote_log="E:\xampp183\tmp\xdebug\xdebug.log"

setting1

enter image description here

enter image description here

现在,仅当通过 xdebug 帮助程序请求会话时才激活断点/调试


推荐