初心者だけどPerlが大好き

コードが世界を変える!

コマンドでベンチマークテストをする

ベンチマークテストとは、コンピュータの処理性能を比較・評価するために行われるテストのことである。
ベンチマークテストでは、テスト用のプログラムを実行させてソフトウェアやハードウェアの性能を計測する。
CPUの処理速度やグラフィック描画速度、メモリのアクセス速度など部分的な性能を評価する場合もあれば、コンピュータシステム全体の処理性能を評価する場合もある。
ベンチマークテストを行うことで、そのシステムや製品がどの程度優れているのかを、
具体的な数値をもとに知ることができる。(IT用語辞典バイナリーより)


Hatena::Diaryの kazuhoのメモ置き場に
初期化とか終了処理とか除いたベンチマークの取り方
http://d.hatena.ne.jp/kazuhooku/20091015/1255601331
kazuhoさんの 素晴らしいコードがありますので
これで コマンドプロンプトから ベンチマークを取ろうと思います。
まー 内容は 難しくても いいんです。

コマンドプロンプトでのPerlに慣れる意味と
Perlベンチマークを取る ということを体験しましょう。

以下のコードを TeraPadで作成して ben.pl と名前をつけて
xamppのhtdocsに置いてくださいね

#!D:/xampp/perl/bin/perl -w  #Dドライブの場合
#!C:/xampp/perl/bin/perl -w  #Cドライブの場合

use strict;
use warnings;
use Benchmark ();

my %bench;
Benchmark::enablecache();
for (my $i = 0; $i < 100; $i++) {
# ここでいろいろ初期化
push_bench('a', sub { for (1..100000) {} });
# ここでいろいろ終了処理
}
for (my $i = 0; $i < 100; $i++) {
# ここでいろいろ初期化
push_bench('b', sub { for (1..200000) {} });
# ここでいろいろ終了処理
}

Benchmark::cmpthese(\%bench);

sub push_bench {
my ($n, $c) = @_;
my $t = Benchmark::timeit(1, $c);
$bench{$n} = $bench{$n} ? Benchmark::timesum($bench{$n}, $t) : $t;
}


では これを コマンドプロンプトで呼んで実行してみます。

Cドライブの人は DをCに入れ替えて解釈してね



D:¥xampp¥htdocsで Enter キー
D:¥xampp¥htdocs>となるので 続いて
perl ben.pl で Enter キー



少し 時間がたってから 結果が表示されます