ssc18 のベンチマークテストの要領 1〜3 1.http://ww51.tiki.ne.jp/~srr-cake/qsort/ssc18/ から次の6つのファイルをダウンロードする。 http://ww51.tiki.ne.jp/~srr-cake/qsort/ssc18/sqsort.c http://ww51.tiki.ne.jp/~srr-cake/qsort/ssc18/timsort.c http://ww51.tiki.ne.jp/~srr-cake/qsort/ssc18/timsort.h http://ww51.tiki.ne.jp/~srr-cake/qsort/ssc18/timsort-impl.h http://ww51.tiki.ne.jp/~srr-cake/qsort/ssc18/main_prog.c http://ww51.tiki.ne.jp/~srr-cake/qsort/ssc18/benchmark.sh 2.benchmark.sh を実行する。実行結果は benchmark.txt へ書き込まれる。   main_prog.c は benchmark.sh の中でコンパイル・実行される。   これの引数と出力の説明は、「3.」に記載。 bench-sample.txt は benchmark.txt の例です。 3.ベンチマークテストを行うプログラム main_prog.c 簡易な「ソートの正しさ検査」を行っている。正式な「ソートの正しさ検査」は別に実施している。 main_prog.c は次のパラメータを指定して実行する。 引数1 キー値の種類を指定する 0:定数 -1:昇順 -2:降順 -3:同値なし乱数 1:乱数 d>=2:乱数%d 引数2 配列の要素数 引数3 配列の要素サイズ(byte数)(4以上かつ4の倍数であること) (0ならsizeof(char*)となる) 引数4 ソートの繰り返し回数(繰り返し毎に配列の要素のキー値は異なる) 引数5 _QS_MID1 の値 (-1のときは既定値を使用) 今回は使用しない 引数6 _QS_MID2 の値 (-1のときは既定値を使用) 今回は使用しない 引数7 _QS_MID3 の値 (-1のときは既定値を使用) 今回は使用しない 引数8 比較関数の重さを調整する数値。大きいほど比較関数が重たくなる。 main_prog.c 1回の実行で、実行結果を1行出力する。1行は13項目ある。例と意味を次に示す。 qs9i5 d=-3 e=10000 s=8 R10000 M300:300:8:0:  プログラム名 キー値の種類 要素の個数 大きさ 繰り返し回数 引数5〜8の値 c=130260 1302608733 a=65855 658555016 i=196115 T=19.06 191  平均比較回数 全比較回数 平均代入回数 全代入回数 比較+代入 処理秒数 平均時間(10μ秒単位) これをstdoutに出力する。(前半の6つと最後の2つはstderrにも出力する) 「 平均代入回数 全代入回数 比較+代入 」の3項目は、全代入回数>0 のときだけ出力する。 今回は必ず「全代入回数=0」なので、この3項目の出力はない。