投稿
おちゃめ ochame_nako
実数型と整数型の速度の違いについて少し調べたことを書いておきます。 A=A・・・約315ナノ秒 A=A+1・・・約345ナノ秒 「+1」の部分が約30ナノ秒 A%=A%・・・約320ナノ秒 A%=A%+1・・・約335ナノ秒 「+1」の部分が約15ナノ秒 この結果からすると2倍くらい整数型の方が速いのですが、見ての通り代入処理が遅いので速度差はわずかです。 つまり、実数型を整数型にすれば速くなるのではなく代入処理を少なくする方が速くなるわけです。 ちなみにINC A、INC A%は約585ナノ秒でした。 なぜかA=A+1よりも遅くなっているけどver.3.0.0では同一の速度でした。
13そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
ちなみに計測には私が作ったTIMER関数を使い複数回計測した平均を5ナノ秒単位で丸めて表記しています。(5ナノ秒未満の数字は計測誤差による影響が大きいため) TIMER関数については私の活動を参照してください。
0そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
あとナノ秒が何なのかが分からない人もいるかもしれないので書いておくと 1秒=1000ミリ秒 1ミリ秒=1000マイクロ秒 1マイクロ秒=1000ナノ秒となっています つまり、1秒=1000000000ナノ秒です。
0そうだね
プレイ済み
返信[3]
親投稿
基本的には速度をきにするより、 整数型にするべきか、整数型で処理したいかで 考えた方が良さそうですね
2そうだね
プレイ済み
返信[4]
親投稿
ナツキ natukin1978
色々と調査されてるのが凄い。 しかし、ディープだなぁ。
0そうだね
プレイ済み
返信[5]
親投稿
イカ ikasan1830
INC遅いのかよ。排除しなきゃ…(使命感)
0そうだね
プレイ済み
返信[6]
親投稿
ASA fusuian
でもあわてて直すと、次のバージョンでINCの方が速くなるかも知れませんよ?
1そうだね
プレイ済み
返信[7]
親投稿
ヨッシー okkun2002
INCを使ってなくてよかった
0そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
るかかさんへ 整数型は実質数%しか高速化できませんが実数型の半分のサイズで済むので整数型で問題ない場面で整数型にするのがベターでしょうね。 ナツキさんへ 今後はさらに速度について探求していく予定です。 イカさん、ASAさん、ヨッシーさんへ 上記の速度はあくまでver.3.1.0の結果でしかないですからね。 今後のバージョンアップでもこのままであることは保証はできないです。 ver.3.0.0とver.3.1.0の違いを考えるとver.3.2.0でまた変わる可能性が高いです。
0そうだね
プレイ済み
返信[9]
親投稿
おちゃめ ochame_nako
加算ではなく乗算を見てみるとさらに面白い結果が得られます。 A=B*5・・・約580ナノ秒 A=B*C・・・約500ナノ秒(変数Cの値は5) 普通は変数よりも数値の方が速いですが、プチコン3号では乗算においては一旦変数に入れて計算した方が高速になっています。 しかし、これは乗算が遅いだけなのでC=1/5としてA=B/Cとすればさらに高速(約410ナノ秒)になります。 それならばA=B/0.2ではさらに高速になると思いがちですが、こうするとA=B*Cとほぼ同じ速度まで低下します。(定数の処理は整数より実数の方が明らかに遅いため)
0そうだね
プレイ済み
返信[10]
親投稿
☆Tatsukin★ tatu_kin1192
1n秒単位!? 細かすぎです!すごいですね!
0そうだね
プレイ済み
返信[11]
親投稿
☆Tatsukin★ tatu_kin1192
インク(INC)って何の命令でしたっけ? ACLS[エークロス]全て消す CLS[クロス]文字を消す INPUT[インプット]変数を聞く PRINT[プリント]画面に文字を表示 LOCATE[ロカテ]文字の位置を変える
0そうだね
プレイ済み
返信[12]
親投稿
ヨッシー okkun2002
INCは、変数の値を+1にする命令です(ヘルプで知ったなんて言えない) LOCATEってロカテって読むんですね。ローケイトって読んでたんですけど
0そうだね
プレイ済み
返信[13]
親投稿
Tenjutan_ Tnnj-Hsu
あれ?ロケーションじゃなかったでしたっけ?
1そうだね
プレイ済み
返信[14]
親投稿
if vnconfig
INC は increment。読みはインクかな。basic では珍しいが、アセンブリでは常識。 CLS は clear screen なんでクリアスクリーンとかシーエルエスかな。クロスとは絶対に読まない ACLS はプチコン独自だけど、all CLS という感じ? エークロスとは読まない。 LOCATE は英語の locate。ローケートかな。ロカテとは絶対読まない。
2そうだね
プレイ済み
返信[15]
親投稿
ヨッシー okkun2002
ホッ よかった。一応合ってる
0そうだね
プレイ済み