此问题在此处已有答案:
Profiling PHP code [duplicate](9个回答)3天前关闭。如何对PHP中的某些代码进行基准测试?我可以使用计时器来计算差异,但我不确定这是否是最好的解决方案。
y1aodyip1#
看看XDebug Profiler来测试性能等。Xdebug的Profiler是一个功能强大的工具,让你能够分析你的PHP代码,确定瓶颈,或者大致看看你的代码的哪些部分是慢的,可以使用速度提升。
bqucvtff2#
您可以使用profiler,就像Xdebug中内置的一样。
uubf1zoe3#
Xcovery很酷,但如果你不想安装这个库,你可以尝试以下方法:我用来定位可能的瓶颈的方法是:
$benchmark_start = microtime(true); // Code goes here $benchmark_stop = microtime(true); $benchmark_total = $benchmark_stop - $benchmark_start; echo "The script took ". $benchmark_total." seconds";
字符串
bwitn5fc4#
使用计时器手动分析的更复杂的示例对我来说很完美,特别是当我被要求在一些只允许FTP访问的实时服务器上整理东西时。不用说,分析在实时服务器上比在温室开发人员的PC上更重要(也更有用)。
$TIMER['start']=microtime(TRUE); // some code $query="SELECT ..."; $TIMER['before q']=microtime(TRUE); $res=mysql_query($query); $TIMER['after q']=microtime(TRUE); while ($row = mysql_fetch_array($res)) { // some code } $TIMER['array filled']=microtime(TRUE); // some code $TIMER['pagination']=microtime(TRUE); if ('127.0.0.1' === $_SERVER['REMOTE_ADDR']) { //I set my IP here echo "<table border=1><tr><td>name</td><td>so far</td><td>delta</td><td>per cent</td></tr>"; reset($TIMER); $start=$prev=current($TIMER); $total=end($TIMER)-$start; foreach($TIMER as $name => $value) { $sofar=round($value-$start,3); $delta=round($value-$prev,3); $percent=round($delta/$total*100); echo "<tr><td>$name</td><td>$sofar</td><td>$delta</td><td>$percent</td></tr>"; $prev=$value; } echo "</table><>"; }
4条答案
按热度按时间y1aodyip1#
看看XDebug Profiler来测试性能等。
Xdebug的Profiler是一个功能强大的工具,让你能够分析你的PHP代码,确定瓶颈,或者大致看看你的代码的哪些部分是慢的,可以使用速度提升。
bqucvtff2#
您可以使用profiler,就像Xdebug中内置的一样。
uubf1zoe3#
Xcovery很酷,但如果你不想安装这个库,你可以尝试以下方法:
我用来定位可能的瓶颈的方法是:
字符串
bwitn5fc4#
使用计时器手动分析的更复杂的示例
对我来说很完美,特别是当我被要求在一些只允许FTP访问的实时服务器上整理东西时。
不用说,分析在实时服务器上比在温室开发人员的PC上更重要(也更有用)。
字符串