VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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

とか。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -