HSP2.x系用 ベンチマークプログラム ソースコード
このソースコードは、Hot Soup Processor 2系向けに書かれた、ベンチーマーク用プログラムです。
llmodとloadlibが必要になります。
需要があればHSP3用に改造しますw
llmodとloadlibが必要になります。
需要があればHSP3用に改造しますw
;##########################
; HSPベンチマーク即席プログラム
; By Hiroki
;
; ※llmod.as及び、loadlib.dllが必要です。
;##########################
#include "llmod.as"
#module "GET_CLOCK"
;
; open_winmm
; winmm.dllをロードします。戻り値なし
;
; close_winmm
; winmm.dllを解放します。戻り値なし
;
; clock
; timeGetTime関数を呼び出します。
; 戻り値 = プログラム起動からの経過時間(ミリ秒)
;
#deffunc open_winmm
ll_libload@ dll,"winmm.dll"
return
#deffunc close_winmm
ll_libfree@ dll
return
#deffunc clock
mref st,64
dllproc "timeGetTime", zero, 0, dll
st = stat
return
#global
#define CAPTION "ベンチプログラム - ループ回数"
;##########################
;# ベンチ回数の設定、変更の必要あり
;#
;# .0で指定した回数分、処理を実行して処理時間を求め、
;# .1で指定した回数分、処理時間を計測し、
;# 合計・平均を求めるという処理を、
;# .2で指定した回数分繰り返します。
;##########################
benchcount.0 = 8000 ; 処理の実行回数
benchcount.1 = 10 ; ↑の実行回数
benchcount.2 = 5 ; 合計・平均の算出回数
;##########################
;# 初期化、変更の必要無し
;##########################
screen 0, 100 * benchcount.2, 18 * (benchcount.1 + 2) + 10
title CAPTION + benchcount
cls 4
color $ff, $ff, $ff
dim bench, benchcount.1 ; 処理時間用変数
open_winmm ; winmm.dllを呼び出す
;##########################
;# メインループ。一部変更の必要あり
;##########################
repeat benchcount.2
total = 0
repeat benchcount.1
clock
st = stat
repeat benchcount
;##########################
;# ここに計測したい処理を記述します。
;# 例 : a = 1
;##########################
;##########################
; 処理の記述、ここまで
;##########################
loop
clock
bench.cnt = stat-st
loop
pos cnt * 100, 0
repeat benchcount.1, 0
c = cnt + 1
mes "" + c + "回目 : " + bench.cnt
total + bench.cnt
loop
mes "合計 : " + total
total = total / benchcount.1
mes "平均 : " + total
loop
; winmm.dllを解放する
close_winmm
stop
;##########################
;# EOF "bench.hsp"
;##########################
; HSPベンチマーク即席プログラム
; By Hiroki
;
; ※llmod.as及び、loadlib.dllが必要です。
;##########################
#include "llmod.as"
#module "GET_CLOCK"
;
; open_winmm
; winmm.dllをロードします。戻り値なし
;
; close_winmm
; winmm.dllを解放します。戻り値なし
;
; clock
; timeGetTime関数を呼び出します。
; 戻り値 = プログラム起動からの経過時間(ミリ秒)
;
#deffunc open_winmm
ll_libload@ dll,"winmm.dll"
return
#deffunc close_winmm
ll_libfree@ dll
return
#deffunc clock
mref st,64
dllproc "timeGetTime", zero, 0, dll
st = stat
return
#global
#define CAPTION "ベンチプログラム - ループ回数"
;##########################
;# ベンチ回数の設定、変更の必要あり
;#
;# .0で指定した回数分、処理を実行して処理時間を求め、
;# .1で指定した回数分、処理時間を計測し、
;# 合計・平均を求めるという処理を、
;# .2で指定した回数分繰り返します。
;##########################
benchcount.0 = 8000 ; 処理の実行回数
benchcount.1 = 10 ; ↑の実行回数
benchcount.2 = 5 ; 合計・平均の算出回数
;##########################
;# 初期化、変更の必要無し
;##########################
screen 0, 100 * benchcount.2, 18 * (benchcount.1 + 2) + 10
title CAPTION + benchcount
cls 4
color $ff, $ff, $ff
dim bench, benchcount.1 ; 処理時間用変数
open_winmm ; winmm.dllを呼び出す
;##########################
;# メインループ。一部変更の必要あり
;##########################
repeat benchcount.2
total = 0
repeat benchcount.1
clock
st = stat
repeat benchcount
;##########################
;# ここに計測したい処理を記述します。
;# 例 : a = 1
;##########################
;##########################
; 処理の記述、ここまで
;##########################
loop
clock
bench.cnt = stat-st
loop
pos cnt * 100, 0
repeat benchcount.1, 0
c = cnt + 1
mes "" + c + "回目 : " + bench.cnt
total + bench.cnt
loop
mes "合計 : " + total
total = total / benchcount.1
mes "平均 : " + total
loop
; winmm.dllを解放する
close_winmm
stop
;##########################
;# EOF "bench.hsp"
;##########################
最初に記事を書いた日:2017/10/30
この記事をシェアする
関連記事
- ・HSP2.xで、MIDIファイルのヘッダ情報を調べるモジュール
- ・HSP2.xで、LHA書庫の圧縮と解凍を実現するモジュール
要loadlib&llmod - ・HSP2.xで、HTMLファイル内のリンク先を列挙するサンプルコード(モジュール付き)
- ・HSP2.x系で、ファイルパスから、ファイル名やフォルダ名を取得するサンプルモジュール
- ・HSP2.x系で、アルファベットの大文字と小文字を相互変換するサンプルモジュール
- ・HSP2.x系で、平方根の近似値を整数で取得するサンプルモジュール
- ・HSP2.x系で、getkey、stick命令のキー番号を取得・表示するサンプルコード
- ・HSP2.x系で、円の中心に向かってグラデーションをかけるサンプルコード
- ・HSP2.xでMDIウインドウを作成するサンプルコード
要loadlib&llmod