- ベストアンサー
処理速度向上のための小さな努力
VB6+sp6で開発しています。 最近、変数宣言でInteger型よりもLong型の方が処理が早いとか If Trim$(strHoge) = vbNullString then の比較よりも If Len(Trim$(strHoge)) = 0 then の方が早いと教えてもらいました。 実際は何万回も処理が走った時に数秒の差が出る程度だということなのですが ほんとに処理速度向上に効果あるのでしょうか? それと共にこんな小さなコードの書き方の違いで 処理効率が良くなったりする方法が他にもあるのか気になりました。 現場でよく使われているようなポピュラーな手法があったら是非教えてくださいm(_ _)m
- みんなの回答 (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をあたりに行ったりする明らかに重い動作を重点的にチェックするのが一番効果が目に見えて楽しいかも。
その他の回答 (1)
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 いくつか載っているページを紹介します。 http://www.bcap.co.jp/hanafusa/ ([VB6.0関係]→[その他]→[プログラムの最適化]) http://www.mb.ccnw.ne.jp/garger-studio/vbgame/best_idx.html 可読性とのバランスだと思いますが。 あとは、単純なループ処理の場合など、待ち時間の精神的負担の軽減というアプローチもあるでしょう。 (進行インジゲータの表示など。)