2012-02-01 14 views
2

私はプレゼンテーション"Building memory efficient Java applications"を読んでいて、スライド11で「典型的なヒープのライブコレクションはいくつありますか?」という質問をしました。トリビアを説明してください:典型的なヒープにはいくつのライブコレクションがありますか?

答えは10kから数百万です。

私は非常に謙虚になり、私はこの質問でどこから始めるのか分かりません。

ライブコレクションとは何ですか、「ライブコレクションではありませんか?コレクションでは、java.util.collectionsを意味しますか?

コレクションはヒープに存在しますか?私は彼らがスタックに割り当てられていないので、ヒープだけが残っていると思います。

ヒープ上に1万から数百万のコレクションが存在するという黙示は何を意味していますか?私はこれが悪いことだとしか思えません。

+1

whoa whoa ..私は、2つの人々がこれを「オフトピック」とフラグ付けしていることを知っています。プログラミングには関係しません。私はこれがどのようにプログラミングに関係しているのか分かりません。改善のための説明または示唆。私はこれをプログラミング技術/知識/背景の理解に非常に関連していると考えています – MedicineMan

+0

これは非常に啓発的なスライドショーです。どのくらいの頻度で8文字の文字列が64バイトを取るか、「整数」が32バイトかかりますか? – Gabe

答えて

2

はい、これはjava.utilコレクションを指しています。 (各コレクションタイプの具体的な内容は、HashSetArrayListなどです。)

コレクションはヒープ上に存在しますが、一度収集されるとガベージコレクションされます実行中のアプリケーションによって、「ライブ」とはみなされません。

ヒープ上のコレクションの数が多いことは悪いことではありません。これは、コレクションが頻繁に使用されていることを示しているだけであり、コレクションの実装、特にそのメモリ効率を詳しく調べる必要があります。 (人々が良い抽象概念を広範に使用していることは間違いなく良いことです!)

これは、ほんの1つのアプリケーションについて語っているのではありません。実際のアプリケーションをいくつか取り上げ、それらの分析。

-1

彼らは彼らの特定のアプリケーションについて話しています、あなたは何のコレクションも持っていないかもしれません。

0

ライブはまだそれらへの参照があることを意味します。つまり、ガベージコレクションの対象にはなりません。プレゼンテーションはメモリ効率に関するものなので、コレクション(例:java.util.Set/List/Etc)が一般的に使用され、正しいものを選択することはメモリの観点から重要であることを意味していると思います。

関連する問題