投稿日 | : 2005/04/24(Sun) 00:32 |
投稿者 | : Say |
Eメール | : |
URL | : |
タイトル | : Re: ###処理高速化について### |
> VB6.0にて処理を高速化させたいのですが何か良い方法はありませんでしょうか?
> 一応Mid関数をMid$にしてみたり、構造体にアクセルする時Withを使用したり、
> 私なりに考えてみたのですが殆ど変化が見られませんでした。
VBに限らず、小手先のテクニックを駆使するより
アルゴリズムを見直したほうがいいでしょう。
一説によると「2割の処理が8割の時間を消費する」といいますから、
時間を食っている処理を探すほうが先決でしょう。
大抵の場合、ループの中を軽くすれば目に見えて速くなります。
(文字列連結によるブロック転送を減らすとか)
今の言語システムは、処理の多くをコンポーネントに依存していますから、
高速なコンポーネントを利用するというのも有力な手段です。
もっとも、もし高速化が最優先の問題なら、
「VB6.0にて」と言っている時点で既に間違っているかも。
目に見える高速化の例としては、
Option Explicit
Private Const LOOPMAX As Long = 20000
Private Sub Command1_Click()
Dim i As Long, a As String, t As Double
t = Timer
For i = 0 To LOOPMAX
a = a & CStr(i)
Next
MsgBox Timer - t
End Sub
Private Sub Command2_Click()
Dim i As Long, a As String, b(LOOPMAX) As String, t As Double
t = Timer
For i = 0 To LOOPMAX
b(i) = CStr(i)
Next
a = Join(b, "")
MsgBox Timer - t
End Sub
とか。