none
WinXP+VB6で動作がまったりします。 RRS feed

  • 質問

  • 初めて投稿いたします。
    よろしくお願いします。

    Windows2000+Visual Basic 6.0で開発したアプリケーションをWindowsXPで動かしたいのですが、
    動作がだんだんゆっくりになってしまう現象に悩まされています。

    使用しているXPパソコンにあまりメモリが入っていないため、当初メモリ不足を疑いましたが、
    当該アプリケーション動作中に別のアプリケーション(エクスプローラ等)を立ち上げても
    ごく普通の速度で動作するため、アプリケーション単体の問題と思います。

    アプリケーションはテストプログラムで、検査対象との通信内容を良否判定しています。
    フォームにFLEXGRIDが貼り付けてあり、通信内容のOK/NGを表示するようになっています。

    通信はWinsockでUDP通信をしています。
    途中、検査物の操作の指示などのため、別フォームを表示させていますが、
    音楽を鳴らして検査作業者に知らせるため、フォームにはMMControlが貼り付けてあります。

    この指示フォームを繰り返し表示させただけで動作がゆっくりになるのはわかったのですが、
    どうしても原因が分かりません。

    OSによって動作が違う、というのがとても気になっています。
    どんな内容でも結構です、アドバイスいただけるとうれしいです。

    2007年2月19日 7:02

回答

  • こんにちは、アドバイスありがとうございます。

    別件で追われていてなかなか見に来られずにおりました。

     

    やはりFLEXGRIDは動作がかなり遅いのですね。

    今回PCを数台増強する必要がありメモリを多めに積んだところ、問題の現象はそれほど気にならなくなりました。

    ありがとうございました。

     

    2008年3月6日 7:51

すべての返信

  • こんにちわ。オーツキです。

    FlexGridを使っているということなので、どんどん表示件数って増えていますか?

    行っている処理で、不要なものから少しずつコメントアウトして、確認していくのが近道な気がします。

    MMControlとか・・・。

    2007年2月23日 3:08
  • コメントありがとうございます。

    FlexGridの表示件数は増減ナシです。
    ただし、表示件数はものすごく多いのですが。

    プログラム自体もかなり大きいものなので、
    単純に処理が重いのかもしれません。

    最初から遅いのではなく、時間がたつにつれて遅くなるというのが解せず、
    さらに新しいほうのOSで動作が不安定というのが非常に気になっています。

    とりあえずMMControlからコメントアウトしてみます。
    ありがとうございました。

    2007年2月23日 6:26
  • FlexGridは一度設定したら、一切変更なしですか?

    それとも、セルの更新はあるのでしょうか?

    また、非表示にしたらどうでしょうか?

    以前、ワタシのとこで発生した場合ですと、実はFlexGridは関係なく、そこに値をセットするためのクラスの開放に時間が掛かっていることがありました。

     

    2007年2月23日 6:51
  • 検査物の良否判定結果を表示するため、FlexGridのセルの中身とBackColorは更新されます。

    セルのRows、Colsは変更なしです。

     

    実はこの後、別のプログラムを担当しているグループ員が同様の現象に出くわしたため、

     

    ・MMControl は関係ない(使用していないプログラムでも現象が起きた)

    ・プログラムのバグでもなさそう(つくりが違う)

     

    ということが分かりました。

    もう少し探ってみます。

    2007年8月24日 7:47
  • こんにちは。フレキシブルGridコントロールはかなり重かったという記憶(印象)がありますね。特に件数が多い場合、動作がにぶくなったと思います。

    しかし、Win2000なら許容できたという事なら、やはりメモリー不足のせいでしょう。Win/XPにすれば、最低でも512MBぐらいは欲しい所でしょう、経験値として。アプリによってはもっと多く必要なのは言うまでもありません。 タスクマネジャーでメモリー消費をモニターすれば、ある程度様子が分かるのでは。

    どうしてもアプリ側で何とかしたいなら、全件数をFrex.Gridに入れるのでなく、数100件ぐらいとどめるとかも考えられますが、面倒かも。 あるいは思い切ってDataGridコントロールに変える(この場合mdbファイルへの保存が必要だったか?)とか.....

    (ご注意:数値は全て目安で、実情によって異なります。)

    2007年8月25日 5:11
  • こんにちは、アドバイスありがとうございます。

    別件で追われていてなかなか見に来られずにおりました。

     

    やはりFLEXGRIDは動作がかなり遅いのですね。

    今回PCを数台増強する必要がありメモリを多めに積んだところ、問題の現象はそれほど気にならなくなりました。

    ありがとうございました。

     

    2008年3月6日 7:51