一个不错的debug函数

摘自:PHP手册

通过debug_backtrace()函数可以找到

<?php
// useful and comfortable debug function
// it's show memory usage and time flow between calls, so we can quickly find a block of code that need optimisation...
// example result:
/*
debug example.php> initialize
debug example.php> code-lines: 39-41 time: 2.0002 mem: 19 KB
debug example.php> code-lines: 41-44 time: 0.0000 mem: 19 KB
debug example.php> code-lines: 44-51 time: 0.6343 mem: 9117 KB
debug example.php> code-lines: 51-53 time: 0.1003 mem: 9117 KB
debug example.php> code-lines: 53-55 time: 0.0595 mem: 49 KB
 */

function debug()
{
   static 
$start_time NULL;
   static 
$start_code_line 0;

   $call_info array_shiftdebug_backtrace() );
   
$code_line $call_info['line'];
   
$file array_popexplode('/'$call_info['file']));

   if( $start_time === NULL )
   {
       print 
"debug ".$file."> initializen";
       
$start_time time() + microtime();
       
$start_code_line $code_line;
       return 
0;
   }

   printf("debug %s> code-lines: %d-%d time: %.4f mem: %d KBn"$file$start_code_line$code_line, (time() + microtime() - $start_time), ceilmemory_get_usage()/1024));
   
$start_time time() + microtime();
   
$start_code_line $code_line;
}

////////////////////////////////////////////////
// example:

debug();
sleep(2);
debug();
// soft-code...
$a 5;
debug();

// hard-code
for( $i=0$i<100000$i++)
{
   
$dummy['alamakota'.$i] = 'alamakota'.$i;
}
debug();
usleep(100000);
debug();
unset(
$dummy);
debug();

?>

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据