总结
豆包 AI 助手文章总结

slowlog分析工具 v 10

php中文网
发布: 2016-08-08 09:18:56
原创
1185人浏览过

<?php

/**
 *  slowlog分析工具 v 1.0 
 *
 */
if( $argc < 2 ){
	
	$help.= "Help:" .PHP_EOL;
	$help.= "        slowlog.php [option]" .PHP_EOL;
	$help.= "        -f  log file path.".PHP_EOL;
	$help.= "e.g : php slowlog.php -f slow.log".PHP_EOL;
	
	exit($help);	
}

$file = $argv[2];

$logs = loadFile( $file );

$stats = array();

echo "Slow log:" . PHP_EOL;
foreach($logs as $key => $logsArr){
	
	echo "---------------------------{$key}-------------------------------" .PHP_EOL;
	
	foreach($logsArr as $k => $v){
	    echo $k . "     [num : ".count($v)."]" .PHP_EOL;	
		 foreach ($v as $phpfile){
			 
			$n = explode(":",$phpfile);
			
			$s = explode(" ",$n[0]);
			 
			if($s[2] && $s[2] != 'unknown' && $s[2] != 'dump'){
		       // echo "======> " . $s[2] . "[ Line: {$n[1]}]". PHP_EOL;
                
				$md5_key = md5($s[2].$n[1]);
				
				if(array_key_exists($md5_key,$stats[$key])){
				
					$stats[$key][$md5_key] = array(
					        'main'=>$k,
							'file'=> $s[2],
							'line'=> $n[1],
							'code'=> $s[1],
							'num'=> $stats[$key][$md5_key]['num'] + 1
					);
				} else {
					
					$stats[$key][$md5_key] = array(
					        'main'=>$k,
							'file'=> $s[2],
							'line'=> $n[1],
							'code'=> $s[1],
							'num'=>1
					);
					
				}
				
			}
		}
	}
	
}

echo PHP_EOL;
echo PHP_EOL;
echo PHP_EOL;
echo "Create json file: slowlog.json" . PHP_EOL;
file_put_contents('slowlog.json',json_encode($stats));
echo "Success!" . PHP_EOL;
echo "http://tool.lu/json/";



function loadFile( $file ){

	$str = file_get_contents($file);

	$arr = explode("\n",$str);
	$g = 0;
	$data = array();
	foreach($arr as $val){
		if( $val ){
			$data[ $g - 1][] = $val; 		   		
		} else {
			
			$g++;
		}
	} 

	$logs = array();
	foreach( $data as $key => $log){
		foreach($log as $k => $l){
		   
			$time = $data[$key][0]; 
			$phpfile = $data[$key][1];
			$p = "#\[(.*?) (.*?)\]  \[(.*?)\] pid (.*?)#";
			preg_match($p,$data[$key][0],$arr);
			$time = $arr[1]; 

			if( $data[$key][0] != $l ){
				
				if( $phpfile != $l ){
					$logs[ $time ][$phpfile][] = $l;
				}
			}
		}	
	}
	
	return $logs;
}
登录后复制

版权声明:本文为博主原创文章,未经博主允许不得转载。

以上就介绍了slowlog分析工具 v 10,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
豆包 AI 助手文章总结
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号