0

UIに3〜4個のグラフを表示するUIを作成しました。

私は次のことに気づきます

  1. これらのグラフが読み込まれるとすぐに、IEのメモリは最大約400 Mbになります。これは、これらのグラフの一部が最大1,000行を表示するテーブルのようなものであるため理解できます。

  2. これらのグラフを更新すればするほど、IEのメモリが増えることに気付きます。

コードを何度も簡単にウォークスルーしたところ、サイズが大きくなっているリークやデータ構造は見つかりませんでした。FlexBuilder2を使用しています。いくつか質問があります。

  1. Flashはいつメモリを解放しますか?IEはそのメモリをOSに戻すことができますか?
  2. フラッシュに既知のメモリリークがあり
    ますか?
  3. 私を助けることができる可能性のあるツールは何ですか?
  4. 未使用のオブジェクトを明示的にnullとして作成するなど、プログラミングのベストプラクティスはありますか?

どうもありがとうございます。

もう1つ質問があります。最小化しない限り、IEはメモリをまったく解放しないようです。

4

1 に答える 1

1

1)この記事では、ガベージコレクション(管理された言語がメモリ管理を処理する方法)についてすべて説明します。基本的に、いつ実行するかを制御することはできません(強制するためのハックがありますが、使用しないでください)

http://www.gskinner.com/blog/archives/2006/06/as3_resource_ma.html

この

http://blog.flexmonkeypatches.com/2007/03/28/flash-player-memory-management-and-garbage-collection-redux-2/

2)不要になったオブジェクトをガベージコレクションできることを確認している限り、リークが発生することはありません。そうは言っても、私はFlexに精通しておらず、おそらくフレームワークにバグがありますか?編集:flex+ieとメモリリークに問題がある人はたくさんいるようです。

3)System.totalMemoryは、少なくとも、使用しているメモリの量を確認するのに役立ちます。編集:Flex Builder 3にアップグレードする場合は、メモリプロファイラーツールが付属しています。

4)はい、何かが不要になった場合は、nullに設定することをお勧めします。イベントリスナーを削除し、可能な場合は弱いリスナーを利用することを忘れないでください。それでも何かへの参照がある場合、それはガベージコレクターとしてマークされません。

于 2010-01-21T08:55:10.530 に答える