[リストへもどる]
一括表示

投稿時間:2002/10/20(Sun) 11:44
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Win98 より WinXP の方が処理が遅い
同じ処理をWindows98 SE celeron466Mhz メモリ127MB VB6.0(SP5) で実行した場合と
WindowsXP HE(SP1) AMD 946Mhz メモリ240MB で実行した場合 WindowsXP では
Windows98 の2倍以上の時間がかかります。具体的には
20000件のデータを読み込み ここで http://www.bcap.co.jp/hanafusa/VBHLP/mozi_cut.htm
紹介している文字列処理の関数を使用してListBox に表示する場合Win98が9.9秒で表示する
のにWinXPでは23.1秒かかってしまいます。
通常ではWinXPの方が処理が早くて当然のはずなのですが、このようにWindowsXPでは処理が
遅くなるような関数とか使用方法とかあるのでしょうか?
どなたかご存知の方、経験された方おられたら教えて頂けないでしょうか



Dim i  As Long
Dim RC As String
List1.Clear
List1.Visible = False
fTimeCount  '測定開始
sDataOpen   'ランダムファイルオープン
For i = 1& To lngRCMax
    Get #lngAddFileNo, i, Add
    With Add
        RC = Right$("0000" & Trim$(Str(i)), 5)
       ' List1.AddItem RC & vbTab & Left$(Trim$(.Kaisya1) & Trim$(.Kaisya2), 25) & vbTab & _
            Left$(Trim$(.Jyusyo1) & Trim$(.Jyusyo2), 25) & vbTab & "      " & Str$(i)
        List1.AddItem RC & "   " & _
        StrCut(Trim$(.Kaisya1) & Trim$(.Kaisya2), 50) & "   " & _
        StrCut(Trim$(.Jyusyo1) & Trim$(.Jyusyo2), 60) & "      " & Str$(i)
    End With
Next i
List1.Visible = True
Debug.Print fTimeCount  '測定終了


コメントアウトしている方を実行すると
WinXP : 6.5   Win98 : 8.1 となります。


一旦どれかのレコードを表示するとすべてのレコードのvbNullCharが取り除かれるのですが
その辺の処理のやり方が Win98 と WinXP では違うように思うのですが?
データをテキストボックスに表示する前に上記を実行すると早くなるのですが、vbNullChar
が取り除かれないのでデータがうまく表示されません。

投稿時間:2002/10/20(Sun) 20:17
投稿者名:K.J.K.
Eメール:akiya@koalanet.ne.jp
URL :
タイトル:
Re: Win98 より WinXP の方が処理が遅い
同じスペックの場合、どちらかといえばNT系よりも98系の方が速度(だけ)
は速かったように思えます。が、今回はスペックが全然違いますね。

RichTextBoxを使うときは、Windows2000以降だと、Sel???プロパティ
を使うとき、どうしょうもないほど遅くなりますよね。これは、
内部保持形式がUNICODEなので、UNICODE <-> ANSI <-> UNICODE と
無駄な変換をするためです。

これに類するような処理を中で行っているとか、なのかも知れません。

投稿時間:2002/10/21(Mon) 09:28
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^2: Win98 より WinXP の方が処理が遅い
レス、ありがとうございます。
やはり、こういう事ってあるんですね!
いままでの例からすると、マシンが高速になれば、処理速度も当然高速になると
思って開発していたものですから、今回はXPで開発して、Win98で使用するので
偶然、気がついたのですが、今後色々と注意する必要がありそうですね。