Ryzen 電力測定⑥

e-tipsmemo.hatenablog.com

e-tipsmemo.hatenablog.com

グラフ表示できるようになったので、
Rustで書いたWebsocketのサーバーから送られてくるjsonでグラフを更新する。
jsonは以下のような形

{
	"time":2019/01/14 02:50:07,
	"voltage":102.396,
	"current":108.74219,
	"wattage":5.335
}

よって、

var t = [];
var v = [];
var c = [];
var p = [];
var maxsize = 100;

.....

sock.addEventListener('message', function(e){
	var jsonstr = JSON.parse(e.data);
	if(t.length >= maxsize)
	{
		t.push(jsonstr['time']);
		t.splice(0,1);
		v.push(jsonstr['voltage']);
		v.splice(0,1);
		c.push(jsonstr['current']);
		c.splice(0,1);
		p.push(jsonstr['wattage']);
		p.splice(0,1);
	}
	else
	{
		t.push(jsonstr['time']);
		v.push(jsonstr['voltage']);
		c.push(jsonstr['current']);
		p.push(jsonstr['wattage']);
	}
	vchart.data.label = t;
	cchart.data.label = t;
	pchart.data.label = t;
	vchart.data.datasets[0].data = v;
	cchart.data.datasets[0].data = c;
	pchart.data.datasets[0].data = p;
	vchart.update();
	cchart.update();
	pchart.update();
});

電力のグラフだけに注目すれば

var pctx;
var pchart;

pctx = $('#powerChart').get(0).getContext('2d');
.....

const pchartDataSet = {
	type: 'line',
	data: {
	  labels: t,
	  datasets: [{
		label: 'power',
		data: p,
		tension: graph_tension,
		backgroundColor: 'rgba(0, 0, 125, 0.3)',
		borderColor: 'blue'
	  }]
	},
	options: {
	  responsive: true,
	  maintainAspectRatio: false,
	   animation:false,
	   scales: {
		  yAxes: [
			{
			  ticks: {
				beginAtZero: true,
				min: 0,
				max: 200
			  }
			}
		  ]
		}
	}
};

pchart= new Chart(pctx, pchartDataSet);

こんな感じでcurrentもvoltageも書いた。

パソコン構成は以下で、

型番
CPU Ryzen5 2600X
マザボ Asrock X470 MASTER SLI
GPU GF-GTX660-E2GHD/DF/OC(流用)
メモリ CMK16GX4M2A2666C16
電源 Corsair CX550M 80PLUS
ケース JONSBO U4
SSD MZVPV256HDGL-00000
HDD DT01ACA300

f:id:katakanan:20190119023050p:plain
グラフから
スリープの時は5Wぐらい。
何もしてない起動時は約80W
シネベンチ(CPU)回して190Wぐらい

でも、CPU自体は
スリープ時(たぶんほぼ0W)
何もしてないとき、2W~3W
シネベンチ(CPU)で90Wか(?)

今後はサーバー側のほうで一ヶ月ごとのcsvファイルでもログしようかと考えている。

Data Visualization with JavaScript

Data Visualization with JavaScript