View difference between Paste ID: PYj4wwCj and gvvGYYSV
SHOW: | | - or go back to the newest paste.
1
#!/usr/bin/php
2
<?php
3
// Be sure to run `bash -c 'chmod 444 /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq'` unless you intend to run this as root
4-
// Credit: pqwoerituytrueiwoq@ubuntuforums.org
4+
5
$silent=false;
6
$delay=1;
7
foreach($argv as $key => $val){
8
	if($val=='-h'||$val=='--help'){
9
		$script=strrpos($_SERVER["SCRIPT_NAME"],'/');
10
		if(!is_bool($script))
11
			$script=substr($_SERVER["SCRIPT_NAME"],$script+1);
12
		else
13
			$script=$_SERVER["SCRIPT_NAME"];
14
		echo "Use the -t option to specify the number of times to poll the cores\n\t$script -t 60\n";
15
		echo "Use the -s option to run the script silently\n\t$script -s yes\n\t$script -s\n";
16
		echo "Use the -d option sets the poling interval\n\t$script -d 0.75\n";
17
		die();
18
	}
19
	if(isset($argv[$key+1]))
20-
	if(!isset($argv[$key+1]))
20+
21-
		break;
21+
22
		unset($val2);
23
	if($val=='-t'&&!is_null($val2)){
24-
	if($val=='-t'){
24+
25
			$time=$val2;
26
		else
27
			echo "$val2 is not a number, ignoring\n";
28
	}
29
	if($val=='-s')
30
		$silent=true;
31
	if($val=='-d'&&!is_null($val2)){
32-
	if($val=='-d'){
32+
33
			$delay=floatval($val2);
34
		else
35
			echo "$val2 is not a number, ignoring\n";
36
	}
37
}
38
$arr=json_decode('{}');
39
$ct=intval(shell_exec("ls /sys/devices/system/cpu/ | grep 'cpu[0-9]' | wc -l"));
40
for ($i=0;$i<$ct;$i=$i+1){
41
	$arr->{'core_'.$i}=Array();
42
}
43
for($i=0;$i<$time;$i=$i+1){
44
	for($x=0;$x<$ct;$x=$x+1){
45
		$val=intval(file_get_contents("/sys/devices/system/cpu/cpu$x/cpufreq/cpuinfo_cur_freq"));
46
		if(!$silent)
47
			echo "Core$x=$val\n";
48
		array_push($arr->{'core_'.$x},$val);
49
	}
50
	shell_exec("sleep $delay");
51
	if(!$silent)
52
		echo "-------------\n";
53
}
54
$arr2="[['Time',";
55-
//var_dump($arr);
55+
56
	$arr2.="'Core $i',";
57
}
58
$arr2=substr($arr2,0,-1);
59
for($i=0;$i<$time;$i=$i+1){
60
	$arr2.='],['.($delay*$i).',';
61
	for($x=0;$x<$ct;$x=$x+1){
62
		$arr2.=($arr->{'core_'.$x}[$i]/1000).',';
63
	}
64
	$arr2=substr($arr2,0,-1);
65
}
66
$arr2.=']]';
67
$name='/tmp/CPU_FREQ_Chart-'.time().'.html';
68
$file=fopen($name,'x+');
69
fwrite($file,'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><script type="text/javascript" src="https://www.google.com/jsapi"></script><script type="text/javascript">google.load("visualization","1",{packages:["corechart"]});google.setOnLoadCallback(drawChart);function drawChart(){var data=google.visualization.arrayToDataTable('.$arr2.');var options={title:\'CPU Graph\',hAxis:{title:\'Time in Seconds\'},vAxis:{title:\'Frequency in Megahertz\'}};var chart=new google.visualization.LineChart(document.body);chart.draw(data, options);}</script><style type="text/css">html,body{width:100%;height:100%;margin:0;overflow:hidden;}</style></head><body></body></html>');
70
fclose($file);
71
echo "Chart saved to $name\nOpen by running one of these commands:\n\txdg-open $name\n\tgnome-open $name\n\tfirefox $name\n\tchromium-browser $name\n";
72
//shell_exec("xdg-open $name");
73-
echo "Chart saved to $name\nOpen by running one of these commands:\n\txdg-open $name\n\tgnome-open $name\n\tfirefox $name\n\tchromium-browser $name";
73+