Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> HSP2 -> HSP2.x系用 ベンチマークプログラム ソースコード

HSP2.x系用 ベンチマークプログラム ソースコード

このソースコードは、Hot Soup Processor 2系向けに書かれた、ベンチーマーク用プログラムです。



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"
;##########################


最初に記事を書いた日:2017/10/30

この記事をシェアする

このエントリーをはてなブックマークに追加

関連記事

Meteoric Streamについて

管理人

Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> HSP2 -> HSP2.x系用 ベンチマークプログラム ソースコード