2Gの新しい世代のメモリを使用する前に、マイナーなgcが10秒ごとに発生し、毎回0.1-0.15秒かかることがわかりました。 3Gへの新しい年齢の記憶。その後、わずかなgcが15秒ごとに発生しますが、完了するまでには約0.3秒かかります。なぜ私が新しい年齢の記憶を増やすとマイナーなGC時間が増えるのですか?私はメモリを増やした後、GC後のアクティブなオブジェクトが55Mから80Mに増加したことに気付きましたが、その理由は何ですか?新しい世代のメモリを増やすとマイナーなGC時間が増える理由
答えて
これは、大きなメモリ領域に多くのライブオブジェクトが存在するためです。 GC時間は主に、生き残り領域にコピーする必要があるライブオブジェクトの数(および全体のサイズ)と比例します。
より大きな若い世代の地域から利益を得ることができるのは、すべてが同時に生きていて、YGに完全に収まらない多くのオブジェクトを作成する場合だけです。そうすれば、彼らは旧世代に勤め続けることができます。
それ以外の場合、合計GC時間は変わらず、時間のかかる、より少ない頻度での、より少ない頻度での、より短い頻度での、より短い頻度での頻度の高いイベントへの分割方法を選択するだけです。
私のアプリケーションロジックは非常に単純で、リクエストを受信し、受信したデータを変換し、別のサーバーに送信するだけです。だから、ライブオブジェクトは、リクエストの処理が完了した後、すべてのオブジェクトが解放されるため、処理されているリクエストの数に依存します。 1秒あたりのリクエストが同じ場合、メモリ領域が増加するとライブオブジェクトが増加する理由は何ですか? – Xilang
あなた以外の誰かが見つけることができないことはほとんどありません。私が記述したように、おそらくテニュアが少ないのでしょうか? –
私はYGメモリを変更する前後に関係なく、gcログにテンディングの詳細を表示しますが、OGにはほとんどテニュアされていません。実際、ほぼすべてのオブジェクトは0歳または1歳で収集されます。違いは2G YG、1歳オブジェクトは約55M、3G YGでは1歳オブジェクトは約80Mです。 – Xilang
若いコレクション間の時間を長くしたい場合は、Edenサイズを大きくする必要があります。若い世代のサイズを変更すると、生存者のスペースのサイズとテンジングのしきい値の2つの変更もありそうです。テンションをつけることにより、テンポラリ空間に昇格される前に、オブジェクトが生存スペース間で何回コピーされるかが決まります。デフォルトのテンリングしきい値は4ですが、指定する場合を除いて、-Xmn
などの特定のパラメータでテンリングしきい値が15に変更されます。
-XX:SurvivorRatio=8
フォームの例を設定することでEdenのスペースを増やし、テールディングのテールディングを-XX:MaxTenuringThreshold=4
に制限することができます。テナントのしきい値を下げるのは、Full GCを圧迫するテナリングスペースにオブジェクトを増やすことです。
GCの保有を試みる前に、私は常に割り当てを見ているメモリプロファイルを実行することをお勧めします。フライトレコーダーで。多くの場合、ごみの量を2〜4倍減らすことができます。これにより、アプリケーションの調整がはるかに簡単になります。
GCログでは、2Gと3Gの両方のケースで、テンシングのしきい値が6であることがわかりました。 OGには、ほとんど何もテニュアされていません。実際、ほぼすべてのオブジェクトは0歳または1歳で収集されます。違いは2G YG、1歳オブジェクトは約55M、3G YGでは1歳オブジェクトは約80Mです。 – Xilang
- 1. なぜクワのブロック数を増やすと時間が増えますか?
- 2. Javaの内部メモリがネイティブメモリトラッキングを増やす理由
- 3. javaでGC時間を増やすには?
- 4. Androidでリストをスクロールするとメモリが増加する理由
- 5. iPhone - メモリ割り当てがやや増えています
- 6. LEFT JOINでレコードを増やす理由
- 7. アリのメモリを増やす
- 8. GHCでGCを増やすには?
- 9. ng-click機能が増えない理由(Angular JSとIonic)
- 10. コア数が増えている間に経過時間が増えるのはなぜですか?
- 11. ブラウザの表示時間を増やす
- 12. ブートストラップモーダルの起動時間を増やす
- 13. ジェスチャータイムアウト時間を増やす方法
- 14. sfDoctrineGuardPlugin - セッション時間を増やす
- 15. Wp7 - タッチレスポンス時間を増やす
- 16. アレイをコピーしますがメモリを増やさない
- 17. PHP:何らかの理由で値が増えない
- 18. 新しいシーンに切り替えるときにメモリが増加する
- 19. z3をインクリメンタルに使用すると時間が増えます
- 20. ソケットサーバーのメモリが増え続ける
- 21. Rのメモリを増やすには?
- 22. opencascadeプロジェクトのメモリを増やす
- 23. シンプルなNGINXドッカークラスタでノード/ポッドを増やすと、並行要求が増えないのはなぜですか?
- 24. JavaScriptの時間が単調に増えていますか?
- 25. 一定の時間を1日増やしますか?
- 26. Twilioメッセージングの待ち時間を増やしますか?
- 27. 長時間実行タイマーがCでプライベートバイトを増やす#
- 28. Swiftでファイルをコンパイルする時間が増えますか?
- 29. Survivor Space急激に成長し、応答時間が増える
- 30. 秒の差がゼロのエポックタイムの計算時間が5:30時間増える
*「マイナーgcは10秒ごとに発生し、それぞれ0.1〜0.15秒かかる」* - これはGCで費やした壁時間の1〜1.5%です。なぜあなたはそれより少ない休止を望んでいますか?要求待ち時間が懸念される場合は、個々の休止時間を短くするのではなく、 – the8472
@ the8472、私のサーバーのCPU負荷は非常に高いですが、多くのメモリリソースが使用されていません。私はCPU負荷を減らすためにGCを減らしたい、良い考えではないようだ。 – Xilang