Google Chart API でパフォーマンスモニタ(ぉ

via http://code.google.com/apis/chart/
Google Chart API がかなり話題なのでとりあえず遊んでみた。普通にチャートを描くだけではつまらないのでパフォーマンスモニタみたいのを…。
確実に使い方間違ってるのでマネしないでください。


青い線がCPU使用率で赤い線が物理メモリ使用率(たぶん)。1秒ごとに更新してるけど、1日の使用制限があるのでこんなことしようように。

キーワードは

あたり。

拡張子は htaVista では動かなかった…。

<html>
<head>
  <title>Performance Monitor</title>
  <script>
    window.resizeTo(260, 260);
  </script>
  <HTA:APPLICATION
    ID="objPerMon"
    APPLICATIONNAME="Performance Monitor"
    SCROLL="no"
    SINGLEINSTANCE="yes">
</head>

<body>
  <script>
    var base = [
      'http://chart.apis.google.com/chart?chs=200x200', 'chg=20,50,1,5', 'cht=lc',
      'chxt=x,y', 'chxl=0:|0|1|2|3|4|5|6|7|8|9|1:||50|100', 'chco=0000ff,ff0000', 'chd=t:'
    ].join('&');
    var cpus = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1];
    var mems = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1];

    var chart = document.createElement('img');
    chart.src = [base, cpus.join(','), '|', mems.join(',')].join('');
    document.body.appendChild(chart);

    var wmi = GetObject('winmgmts:');

    window.setInterval(function() {
      var proc = wmi.instancesof('win32_processor');
      var os = wmi.instancesof('win32_operatingsystem');
      var e = new Enumerator(proc);
      if (!e.atEnd()) {
        cpus.push(e.item().loadpercentage);
        cpus.shift();
      }
      e = new Enumerator(os);
      if (!e.atEnd()) {
        var it = e.item();
        mems.push(
          ((it.totalvisiblememorysize - it.freephysicalmemory) / it.totalvisiblememorysize) * 100);
        mems.shift();
      }
      chart.src = [base, cpus.join(','), '|', mems.join(',')].join('');
    }, 1000);
  </script>
</body>
</html>