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


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0927
lamdaメモリ確保の速度ってどんなもの?12解決


lamda

リンク

2017/9/27(Wed) 23:35:13|NO.81485

メインループでメモリを確保するという、
なんともアホなロジックを組んだときに
体感レベルで遅くなったのがわかったので
(HSPerには常識かも知れないけど)メモリ操作はコストが高いんですね。

いや、PCの性能のせいかもしれない、そうだ、そうに違いない。
そんな期待を込めて、測定器つくったので・・・みなさんの結果教えてください。


#uselib "kernel32.dll" #cfunc timeGetTime "timeGetTime" alloc_mem=64 measure_times=10 sdim log,1024 repeat alloc_mem*=2 if alloc_mem > 512 : break sum=0 mes ""+alloc_mem+"MB で 測定中..." repeat measure_times:bef=timeGetTime():sdim buf,1024*1024*alloc_mem:sum+=timeGetTime()-bef:loop:ret=sum/measure_times log + "メモリ確保("+alloc_mem+")MBの速度は平均: "+ret+"ms (lower is better)\n" loop cls:mesbox log,640,480

あたしの場合はこんな感じでした。


メモリ確保(128)MBの速度は平均: 49ms (lower is better) メモリ確保(256)MBの速度は平均: 101ms (lower is better) メモリ確保(512)MBの速度は平均: 198ms (lower is better)



この記事に返信する


locker

リンク

2017/9/27(Wed) 23:57:45|NO.81486

メモリ確保(128)MBの速度は平均: 119ms (lower is better)
メモリ確保(256)MBの速度は平均: 243ms (lower is better)
メモリ確保(512)MBの速度は平均: 515ms (lower is better)



暇人

リンク

2017/9/28(Thu) 00:17:13|NO.81487

OS側が用意してる命令をつかってるだけだから
HSPに限った事じゃない
メモリ確保と0クリアが行われて、0クリアに時間がかかる
0クリアが必要ないならmemexpandを使えば殆ど時間はかからない
memexpandを使う場合は文字列型変数で初期化されてる必要がある



ソラ

リンク

2017/9/28(Thu) 13:34:32|NO.81491

メモリ確保(128)MBの速度は平均: 39ms (lower is better)
メモリ確保(256)MBの速度は平均: 82ms (lower is better)
メモリ確保(512)MBの速度は平均: 165ms (lower is better)

メモリの確保って意外と時間かかるんですね・・・



ソラ

リンク

2017/9/28(Thu) 16:11:08|NO.81493

一応追記。
「メモリの確保って意外と時間かかる」とは書きましたが、
傍から見ると暇人さんの解説を理解してないかのような書き込みですね。
もちろん理解した上での書き込みで、正確には「sdimって意外と時間かかる」でした。



科学太郎

リンク

2017/9/28(Thu) 17:08:42|NO.81494

1回目

メモリ確保(128)MBの速度は平均: 110ms (lower is better) メモリ確保(256)MBの速度は平均: 211ms (lower is better) メモリ確保(512)MBの速度は平均: 372ms (lower is better)
2回目

メモリ確保(128)MBの速度は平均: 76ms (lower is better) メモリ確保(256)MBの速度は平均: 154ms (lower is better) メモリ確保(512)MBの速度は平均: 316ms (lower is better)
3回目

メモリ確保(128)MBの速度は平均: 80ms (lower is better) メモリ確保(256)MBの速度は平均: 159ms (lower is better) メモリ確保(512)MBの速度は平均: 331ms (lower is better)
4回目

メモリ確保(128)MBの速度は平均: 77ms (lower is better) メモリ確保(256)MBの速度は平均: 149ms (lower is better) メモリ確保(512)MBの速度は平均: 302ms (lower is better)
5回目

メモリ確保(128)MBの速度は平均: 75ms (lower is better) メモリ確保(256)MBの速度は平均: 146ms (lower is better) メモリ確保(512)MBの速度は平均: 349ms (lower is better)
こんな結果でした。



いののて

リンク

2017/9/28(Thu) 17:12:18|NO.81495

メモリ確保(128)MBの速度は平均: 32ms (lower is better)
メモリ確保(256)MBの速度は平均: 65ms (lower is better)
メモリ確保(512)MBの速度は平均: 133ms (lower is better)



ZAP

リンク

2017/9/28(Thu) 23:08:12|NO.81502

スクリプトを貼り付けて実行すると
12行目でエラー38となります。
Win7 64bitです。

#uselib "kernel32.dll" を、

#uselib "winmm.dll" に直すと動きました。

結果です。
メモリ確保(128)MBの速度は平均: 40ms (lower is better)
メモリ確保(256)MBの速度は平均: 81ms (lower is better)
メモリ確保(512)MBの速度は平均: 161ms (lower is better)



情報系専門学校生

リンク

2017/9/30(Sat) 19:54:50|NO.81522

検証環境:

Windows 10 Home 64bit
CPU:Core i7-7500U
RAM:8GB

動作結果:
メモリ確保(128)MBの速度は平均: 170ms (lower is better)
メモリ確保(256)MBの速度は平均: 339ms (lower is better)
メモリ確保(512)MBの速度は平均: 676ms (lower is better)



 

リンク

2017/9/30(Sat) 22:30:01|NO.81523

メモリ確保(128)MBの速度は平均: 199ms (lower is better)
メモリ確保(256)MBの速度は平均: 362ms (lower is better)
メモリ確保(512)MBの速度は平均: 731ms (lower is better)



End

リンク

2017/10/1(Sun) 11:08:50|NO.81530

メモリ確保(128)MBの速度は平均: 37ms (lower is better)
メモリ確保(256)MBの速度は平均: 70ms (lower is better)
メモリ確保(512)MBの速度は平均: 139ms (lower is better)

でした。



End

リンク

2017/10/1(Sun) 11:25:33|NO.81531

メモリもDDR3とDDR4の違いだけで、速度の差がかなりありそうな気がする。



しょうけい

リンク

2017/10/1(Sun) 15:40:15|NO.81534

メモリ確保(128)MBの速度は平均: 66ms (lower is better)
メモリ確保(256)MBの速度は平均: 129ms (lower is better)
メモリ確保(512)MBの速度は平均: 259ms (lower is better)

RAM:4GB
CPU:Core i3 CPU M380
OS:Win7 Professional

こんな感じでいいいんでしょうか



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