Androidトレーニングの記事を読んでいます:パフォーマンスのヒント
オブジェクトの作成は無料ではありません。一時オブジェクト用のスレッドごとの割り当てプールを備えた世代別ガベージ コレクターを使用すると、割り当てを安価に行うことができますが、メモリを割り当てると、メモリを割り当てない場合よりも常にコストがかかります。
一時オブジェクトのスレッドごとの割り当てプールとは?
これに関するドキュメントは見つかりませんでした。
Androidトレーニングの記事を読んでいます:パフォーマンスのヒント
オブジェクトの作成は無料ではありません。一時オブジェクト用のスレッドごとの割り当てプールを備えた世代別ガベージ コレクターを使用すると、割り当てを安価に行うことができますが、メモリを割り当てると、メモリを割り当てない場合よりも常にコストがかかります。
一時オブジェクトのスレッドごとの割り当てプールとは?
これに関するドキュメントは見つかりませんでした。
次のように読んでください:スレッドごとの割り当て、一時オブジェクトのプールを備えた世代別ガベージ コレクター。
スレッドごとのガベージ コレクションとは、オブジェクトを作成したスレッドにのみ関連付けられたオブジェクトが追跡されることです。特定のスレッドのガベージ コレクション時に、そのスレッドに関連付けられた制限付きルート セットから、そのスレッドにのみ関連付けられたどのオブジェクトが到達可能なままであるかが決定されます。到達可能であると判断されなかったスレッド専用オブジェクトは、ガベージ コレクションされます。
彼らが言っていることは、彼らが正しいことですが、オブジェクトの作成 (およびその後のコレクション) には時間がかかる可能性があるということです。
この例を見ると、ある時点でメモリ管理が時間の大半を占めていましたが、各クラスの使用済みオブジェクトをフリーリストに保持することで修正されたため、効率的に再利用できることがわかります。
ただし、この例では、最初はメモリ管理が最大の問題ではなかったことにも注意してください。さらに大きな問題が取り除かれた後、それが最大の問題になりました。
たとえば、別のチームと比較して、体重を減らしたい人々のチームがあるとします。チームに
1) 400 ポンドの人 (他の問題に対応
)、2) 200 ポンドの人 (メモリ管理の問題に対応)、
3) 100 ポンドの人 (他の問題に対応) がいるとします。 .
チーム全体で最も減量したい場合、最初にどこに集中する必要がありますか?
明らかに、彼らは 3 つすべてに取り組む必要がありますが、もし彼らが大物を見逃すと、彼らはそれほど遠くまで行くことはありません.
したがって、最も積極的な手順は、最初に最大の問題が何であるかを (推測ではなく) 見つけ出し、それを修正することです。次に、次に大きい、などです。
大きな秘密は推測しないことです。誰もがそれを知っていますが、彼らは何をしますか?-とにかく推測します。推測は、定義上、しばしば間違っており、最大の問題を見落としています。 最大の問題が何であるかをプログラムに教えてもらいましょう。 (その例のようにランダムな一時停止を使用します。)