php - 提高 Xdebug 性能

标签 php performance xdebug

我发现了很多关于此的文章和帖子,甚至在 stackexchange 网站上,我只是想确定,这是我可以从 xDebug 获得的最大值。

我的场景:

我正在本地主机上开发一个 WordPress 网站。每次,当xDebug打开时,当我想要加载页面时,服务器响应是7-8秒。您可以想象,当您开发时,需要多次重新加载页面,这是多么令人沮丧。

如果我将其关闭,(从 php.ini 中注释掉),它会下降到 1-2 秒。

你有没有看到什么,我在配置中设置得不好?如果没有,您能否建议我进行任何设置以提高服务器响应时间的速度?

如果服务器响应 xDebug 可以是 3-4 秒,那就太好了。谢谢。

我的环境是:

机器

  • IBM Thinkpad T410 i5 CPU 2.40Ghz
  • 8GB 内存
  • 64 位
  • Windows 7 旗舰版 64 位 SP1

软件

  • Apache/2.4.2 (Win64) OpenSSL/1.0.1c
  • PHP 版本 5.6.5 x64
  • 10.0.16-MariaDB(MySql 分支)

我的 xDebug 配置:

  • zend.enable_gc = 开
  • report_zend_debug = 0
  • output_buffering = 关闭

  • zend_extension = D:\PHP\ext\php_xdebug-2.2.7-5.6-vc11-x86_64.dll

  • xdebug.remote_enable=1
  • xdebug.remote_host=127.0.0.1
  • xdebug.remote_autostart = 0
  • xdebug.remote_connect_back = 0
  • xdebug.profiler_enable = 0
  • xdebug.remote_mode=req
  • xdebug.remote_port=9000
  • xdebug.remote_handler=dbgp
  • xdebug.overload_var_dump = 1;
  • xdebug.cli_color = 2
  • xdebug.show_exception_trace=1
  • xdebug.auto_trace=1
  • xdebug.var_display_max_children = -1
  • xdebug.var_display_max_data = -1
  • xdebug.var_display_max_depth = -1

最佳答案

我遇到了一些类似的问题,所以我决定编写一个小脚本来切换 Xdebug。

希望它能帮助你或其他人...所以就在这里..

#!/bin/bash

xdebugPath="/etc/php5/mods-available/xdebug.ini";
apacheRestartCommand="service apache2 reload";

showUsageMessage(){
        echo "Usage: xdebug {on|off|status}";
}

enableDebugger(){
        printf "Enabling X-debug...\r\n";
        sed  -i -e "s/^;xdebug/xdebug/g" "${xdebugPath}";
        sed  -i -e "s/^;zend/zend/g" "${xdebugPath}";
        printf "Restarting Apache...\r\n";
        ${apacheRestartCommand};
        printf "Done\r\n\r\b";
}

disableDebugger(){
        printf "Disabling X-debug\r\n";
        sed -i -e "s/^xdebug/;xdebug/g" "${xdebugPath}";
        sed -i -e "s/^zend/;zend/g" "${xdebugPath}";
        printf "Restarting Apache...\r\n";
        ${apacheRestartCommand};
        printf "Done\r\n\r\n"
}

showStatus(){
        status=$(getStatus);
        if [[ ${status} = 1 ]]; then
                echo "X-debug seems to be enabled";
        else
                echo "X-debug seems to be disabled";
        fi
}

getStatus(){
        local __result=1

        while IFS="" read -r line || [[ -n "$line" ]]; do
                if [[ ${line} == ";"* ]]; then
                        __result=0;
                fi
        done < ${xdebugPath}

        echo "$__result";
}

if [ $# = 1 ]; then
    if [ $1 == "on" ];then
    enableDebugger;
    elif [ $1 == "off" ];then
        disableDebugger;
    elif [ $1 == "status" ];then
        showStatus;
    else
        showUsageMessage;
    fi
else
    showUsageMessage;
fi

将上面的文本保存在名为 xdebug 的新文件中,并将其标记为可执行文件:chmod +x xdebug

关于php - 提高 Xdebug 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28348512/

相关文章:

php - 我可以在变化的值上设置断点吗?

php: session 在服务器上实时运行时不起作用

php - Apache 或 PHP 将 HTTP header 添加到 CSS 和 JS 文件

php - 重写 php switch 语句的 url

javascript - 我是否正确使用了Underscore的throttle方法?

php - Xdebug 未加载

php - 使用请求和 session 插入语句

.net - 使用 1 个 OracleCommand 填充多个数据表

javascript - 许多小的或一个更大的 POST 请求?

python - 使用变量设置日志记录级别