目前,Microsoft Azure网站不支持远程调试PHP站点。但是,您仍然可以使用XDebug扩展模块排错PHP网站问题。Xdebug是一个开源PHP程序调试器,可以用来跟踪,调试和分析PHP程序的运行状况。
 下面具体介绍如何使用XDebug的性能分析功能查找PHP网站的性能瓶颈。在
 Azure网站上的PHP — 配置PHP扩展模块中介绍了如何配置XDebug PHP扩展模块。
 要启用XDebug的Profiling功能,需要创建一个包含如下内容用的.user.ini文件,并通过FTP上传到/site/wwwroot目录下。
 
 zend_extension = "d:\home\site\wwwroot\bin\php_xdebug-2.2.4-5.5-vc11-nts.dll"
 xdebug.profiler_enable=1
 xdebug.profiler_output_dir="D:\home\LogFiles"
 
 启用后,如下图所示,在/LogFiles目录下会生成cachegrind.out文件。
 
 
我们需要使用WinCacheGrind工具分析XDebug的性能文件,WinCacheGrind工具可以从SourceForge网站下载。
如下图所示,我们可以非常直观的看到SlowFunction使用了74秒多的时间。
 
 
双击SlowFunction,可以看到下图所示的具体信息。SlowFunction被调用了mySleep10次,每次花费5~10秒。
 
 
按需启动XDebug Profiler
 在前面的例子中,使用了xdebug.profiler_enabled=1来启用XDebug的profiler功能。该设置应用到整个网站所有的PHP页面,会导致整个网站的性能进一步变慢,在生产环境中可能会导致严重的客户体验问题。
 我们可以使用触发器来启用xdebug的profiler功能。当xdebug.profiler_enable_trigger被设置为1,正常的页面访问不受影响。您需要通过使用XDEBUG_PROFILE的GET/ POST参数,或者设置一个名为XDEBUG_PROFILE的一个cookie来触发xdebug的profiler功能。通常,使用xdebug_enable_trigger的时候,我们需要设置xdebug.profiler_enable为0。如果您需要通过触发器来启用xdebug的profiler功能,您需要在网站的根目录下创建一个.user.ini文件包含下面的内容。
 zend_extension = ".\bin\php_xdebug-2.2.3-5.5-vc11-nts-x86_64.dll"
 xdebug.profiler_enable=0
 xdebug.profiler_output_dir="D:\home\Logfiles"
 xdebug.profiler_enable_trigger=1
 
 使用改配置,正常的PHP网页访问不受影响。如果您希望打开profiler的功能,在访问页面的时候需要加入?XDEBUG_PROFILE=1来触发profiler功能。比如,此时您可以通过访问HTTP://mysite.azurewebsites.net/slow.php?XDEBUG_PROFILE=1来启用xdebug的pfofiler功能。如果您需要POST请求来重现问题,您可以使用Fillder等工具来构建HTTP请求,或者您可以使用xdebug的浏览器扩展。
 
                   
                   
                   
                   
                             本文介绍了如何在Microsoft Azure网站上使用XDebug扩展模块进行性能分析,查找并优化PHP网站的性能瓶颈。通过配置.Xuser.ini文件启用XDebug的Profiling功能,生成性能分析报告,并利用WinCacheGrind工具进行详细分析,从而定位到慢执行函数,发现性能瓶颈。同时,文章还讲解了如何按需启用XDebugProfiler,避免对生产环境造成负面影响。
本文介绍了如何在Microsoft Azure网站上使用XDebug扩展模块进行性能分析,查找并优化PHP网站的性能瓶颈。通过配置.Xuser.ini文件启用XDebug的Profiling功能,生成性能分析报告,并利用WinCacheGrind工具进行详细分析,从而定位到慢执行函数,发现性能瓶颈。同时,文章还讲解了如何按需启用XDebugProfiler,避免对生产环境造成负面影响。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   2101
					2101
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            