HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
0324
iomanip処理時間計測1解決


iomanip

リンク

2016/3/24(Thu) 12:56:50|NO.75057

hspで処理時間の比較

#uselib "kernel32.dll" #func global QueryPerformanceCounter "QueryPerformanceCounter" sptr #func global QueryPerformanceFrequency "QueryPerformanceFrequency" sptr #module #deffunc starttimer dim freq dim before QueryPerformanceFrequency varptr(freq) QueryPerformanceCounter varptr(before) return #deffunc stoptimer dim after dim timetaken QueryPerformanceCounter varptr(after) timetaken = double(after - before) * 1000 / double(freq) return timetaken #global cls 4 font "Consolas", 16 color 255, 255, 255 wait 200 repeat mes "--------------" buffer 1 wait 100 starttimer repeat 10000 //処理1 for i, 0, 10, 1 next // loop stoptimer gsel 0 mes "proc1: " + refdval + "ms" buffer 1 wait 100 starttimer repeat 10000 //処理2 repeat 10 loop // loop stoptimer gsel 0 mes "proc2: " + refdval + "ms" wait 500 loop
やっぱりマクロ命令は遅いのかな。



この記事に返信する


沢渡

リンク

2016/3/24(Thu) 21:05:43|NO.75059

私の環境だと、前者の方が後者の5倍かかりました。
この結果を見ただけだと「随分なタイムロスだな」と感じますが、しかし、
hspdef.asを見てみたところ、ラベルと代入文とgoto文に置き換えているだけだった
っぽいので、間に色々と処理が入れば、大して変わらないんじゃないかとは思います。


repeat 10000 //処理2 a=0 b=0 c=0 repeat 10 a++ b++ c++ loop // loop
後半のrepeat 10000〜loopをこうしてみたら、両者ともほとんど変わらなくなりました。



ONION software Copyright 1997-2021(c) All rights reserved.