2

いくつかの興味深いメモリ使用量の問題があるアプリケーションがあります。最初に開いたとき、プログラムは約50〜60MBのメモリを使用します。これは、32ビットマシンで一貫性を保ちます。ただし、64ビットマシンでは、何らかの方法(クリック、ドラッグ、Alt-Tabキーなど)でフォームを再アクティブ化すると、メモリ使用量がさらに約50MB増加します。このプロセスを数回繰り返してから約45MBにリセットし、その時点でサイクルが再開します。

私はいくつかの調査を行いましたが、多くの人が、VBは一般にガベージコレクションがかなり貧弱であり、ソフトウェアに何らかの影響を与える可能性があると言っています。しかし、私はまだ解決策を見つけていません。アプリケーションがアクティブ化されたときに発生するイベントはありません(32ビットの使用法で示されています)。アプリケーションは、ユーザーのアクションを待機しているだけです。

ロード時に、システムは一部のデータをツリービューにプルしますが、これが唯一の外部接続であり、ユーザーが何かに変更を加えて変更を保存した場合にのみルーチンを再起動します。

他の誰かがこれほど奇妙なことを経験したことがありますか?もしそうなら、誰かがそれを修正するかもしれないことを知っていますか?x64システムでのみ発生するのは奇妙に思えます。

4

2 に答える 2

0

これはまったく問題のようには聞こえません。コメントで述べたように、64 ビット プログラムはより多くのメモリを使用します。アプリケーションはあまりメモリを使用せず、しばらくすると回復します。VB.netには「かなり貧弱なガベージコレクション」がありません。CLRのコレクターであるc#と同じコレクターを使用します。

于 2013-01-04T02:05:40.497 に答える