JVM における TLAB の謎を解明

JVM における TLAB の謎を解明

[[413891]]

この記事はWeChatの公開アカウント「プログラマーの成長」から転載したもので、著者はプログラマーの成長です。この記事を転載する場合は、プログラマーの成長公開アカウントまでご連絡ください。

この記事を始める前に、JVM がオブジェクトを作成し、メモリ アドレスを割り当てるプロセスを理解しており、JVM のメモリ分割も知っていることを前提とします。人道的な観点から、参考までに写真を投稿します。

JVM メモリ構造

ヒープメモリパーティション構造

ヒープ領域にメモリを割り当てるときに、マルチスレッドの安全性の問題はありますか?

A: 存在するかもしれません。

新しいオブジェクト();

上記の操作では、最終的にはヒープ メモリ内にメモリ領域の一部を開く必要があることは誰もが知っています。そこで、この質問について考えてみましょう。ヒープ領域はすべてのスレッドによって共有されます。では、JVM が頻繁にオブジェクトを作成する場合、同時実行時にヒープ メモリのスペースを空けるとセキュリティ上の問題が発生するのでしょうか?

この問題を解決するために、まず考えられるのはロックですが、ロックにはパフォーマンスに影響を与えるという問題があります。

TLAB が表示されます (スレッド ローカル割り当てバッファ)

上記の問題に基づいて、TLAB が導入されます。強制変換はスレッドローカル割り当てバッファです。まず、写真を見てみましょう

ステートメント: ヒープ メモリにスペースを割り当てるときは、古い世代に直接割り当てられるのではなく、最初に Eden 領域に割り当てられます。メモリ割り当てが完了した後、GC が実行されるたびに、オブジェクトがリサイクルされない場合は、その生存カウントが +1 になります。この回数が 15 回に達すると、オブジェクトは古い世代に昇格されます。

オブジェクトの割り当てはまず eden 領域で実行されることがわかったので、上の図を理解するのは難しくありません。私たちはエデンエリア内の領域を分割し、これを TLAB と呼びます。各 TLAB はプライベートなので、オブジェクトを同時に作成する場合、実際にはロックなどの操作を実行する必要がなく、セキュリティの問題が解決されます。

割り当てられた TLAB スペースが使い果たされた場合、またはオブジェクトに必要なメモリ スペースが TLAB が提供できるスペースよりも大きい場合、メモリ スペースはパブリック エデン領域または古い世代にのみ割り当てることができます。

要約する

  • 1. JVM はメモリ空間の割り当てに TLAB を優先します。
  • 2. TLAB はエデンエリア全体の 1% を占めます。この値はパラメータを通じてカスタマイズすることもできます。

この問題から別の疑問も推測できます。ヒープ領域はスレッドによって厳密に共有されるわけではありません。

<<:  エッジコンピューティングとデータストレージ: インダストリー4.0の主要テクノロジー

>>:  分散システムにおける「スプリットブレイン」とは一体何でしょうか?

推薦する

完全に無料の K8S 学習プラットフォーム: オンライン クラスター環境がクラウド ネイティブの旅をサポートします。

クラウド ネイティブへの道を歩み始めたい場合、Kubernetes を習得することは間違いなく不可欠...

モバイルソフトウェア開発者向けのシステム選択

「携帯電話」という言葉は、食べること、飲むこと、遊ぶことと同じように、人々の生活に欠かせない要素とな...

クラウドコンピューティングとオープンソース時代のロックイン

私たちはロックダウンについて議論するのが大好きです。ベンダーロックインとは何ですか?他の種類のロック...

SEO 外部リンク構築の原則: 量よりも質を重視すべき

検索エンジンの継続的な改善により、多くのウェブサイトがBaiduからペナルティを受けています。コンテ...

Canalys: 中国のクラウドコンピューティングインフラ支出は四半期で30億ドル近く

Canalys は本日、中国におけるクラウド コンピューティング インフラストラクチャ支出に関する最...

この記事は、クラウドコンピューティングとは何か、その開発の歴史と現状を理解するのに役立ち、収集する価値があります。

01クラウドコンピューティングとは何ですか?クラウドコンピューティング簡単に言えば、ソフトウェア、操...

有能なウェブマスターになる方法について語る [パート 2]

前回は主にデータ セキュリティ、Web サイト セキュリティ、サーバー セキュリティなどの問題につい...

クラウドコンピューティングをゼロから理解する

クラウド コンピューティングは、文字通り「クラウド」と「コンピューティング」の 2 つの部分に分けら...

スーパーグリーンクラウドコンピューティングについてお話しましょう

持続可能なテクノロジーの観点でクラウド コンピューティングがどの程度の順位にランクされるかは、環境に...

エッジコンピューティングと5Gがパンデミック後の経済回復を推進

[[429757]]エッジコンピューティングと5GはCOVID-19後の経済成長を牽引するでしょうか...

Kubernetes クラスタ ロギングの基本を簡単に説明します

サーバーおよびアプリケーションのログ記録は、開発者、運用、セキュリティ チームが運用環境で実行されて...

SEO 実践者の妨げとなっているものは何でしょうか?

みなさんこんにちは。謝凱です。 SEO 実践者はキャリア上の困難に陥ることがよくあります。私の同僚や...

Flipperhost: 5T トラフィックから始まる超高構成の VPS を備えたニッチな商人。安定したウェブサイト構築に適しています。

Flipperhost には 3 つの安価な VPS プロモーションがあり、いずれも非常に高度な構成...

3つの主要なシナリオ、20以上の厳選された製品、Huawei Cloudは電子商取引業界に深く関わっています

私の国のインターネットの発展と成長のおかげで、電子商取引業界はわずか10年余りで急速な成長を遂げまし...