電子書籍の厳選無料作品が豊富!

VB6+sp6で開発しています。
最近、変数宣言でInteger型よりもLong型の方が処理が早いとか
If Trim$(strHoge) = vbNullString then の比較よりも
If Len(Trim$(strHoge)) = 0 then の方が早いと教えてもらいました。

実際は何万回も処理が走った時に数秒の差が出る程度だということなのですが
ほんとに処理速度向上に効果あるのでしょうか?

それと共にこんな小さなコードの書き方の違いで
処理効率が良くなったりする方法が他にもあるのか気になりました。

現場でよく使われているようなポピュラーな手法があったら是非教えてくださいm(_ _)m

A 回答 (2件)

>ほんとに処理速度向上に効果あるのでしょうか?


Private Sub Form_Load()
Dim sngNowtime As Single
Dim strHoge As String
Dim i As Long

i = 0
sngNowtime = Timer
Do While i < 1000000
If Trim$(strHoge) = vbNullString Then
i = i + 1
DoEvents
End If
Loop
Debug.Print "Trim$(strHoge) = vbNullString :"; Timer - sngNowtime

i = 0
sngNowtime = Timer
Do While i < 1000000
If Len(Trim$(strHoge)) = 0 Then
i = i + 1
DoEvents
End If
Loop
Debug.Print "Len(Trim$(strHoge)) = 0 :"; Timer - sngNowtime
End Sub

うーん。微差。

1さんのURLの内容と被るかもしれませんが私は
・オブジェクトのTextやCaptionプロパティなどを直接参照しない
・Withを使う
・なるべくFor eachを使う
などを意識していますね。普通に。
ファイルアクセスとかDBをあたりに行ったりする明らかに重い動作を重点的にチェックするのが一番効果が目に見えて楽しいかも。
    • good
    • 0

こんにちは。

maruru01です。

いくつか載っているページを紹介します。

http://www.bcap.co.jp/hanafusa/
([VB6.0関係]→[その他]→[プログラムの最適化])

http://www.mb.ccnw.ne.jp/garger-studio/vbgame/be …

可読性とのバランスだと思いますが。
あとは、単純なループ処理の場合など、待ち時間の精神的負担の軽減というアプローチもあるでしょう。
(進行インジゲータの表示など。)

参考URL:http://www.bcap.co.jp/hanafusa/,http://www.mb.ccnw.ne.jp/garger-studio/vbgame/be …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!