偽共有とキャッシュラインフィルのJava8 - @競合するコメント

実行すると、仮想マシンのパラメータを追加する必要があります。-XX:-RestrictContended、@競合するコメントを有効にするには

キャッシュシステムは、ユニット内に格納されたキャッシュライン(キャッシュライン)に基づいています。キャッシュラインは、典型的には、2つの連続バイト、32から256バイトの整数乗です。最も一般的なキャッシュラインサイズは64バイトです。これらの変数が同じキャッシュラインを共有する場合、複数のスレッドが、互いに独立変数を変更すると、それが誤って偽の共有ですお互いのパフォーマンスに影響を与えるだろう。競争の書き込みキャッシュラインは、SMPは「の略(SMPシステムを実行することである対称型マルチプロセッシング(対称型マルチプロセッシング)技術の間」、コンピュータ上のプロセッサ(マルチCPU)のグループの集合体を指し、各CPU 共有メモリサブシステムおよびバス構造)最も重要な制限要因で並列スレッドの拡張性を実現しています。偽共有のパフォーマンスサイレントキラーとして説明した一部の人々は、困難なため、コードからのフォルス・シェアリングがあるかどうかを確認します。

図1は、偽共有の問題を示しています。コアスレッド2は、変数Yを更新したいしながら、コア1で実行しているスレッドは、変数Xを更新したいと思います 残念ながら、同じキャッシュラインでこれらの二つの変数。各スレッドは、変数を更新するために、キャッシュラインの競争力の所有権に行く必要があります。コア1は、対応するキャッシュライン2の障害の中核を行いますキャッシュ・サブシステムの所有権を取得する場合。コア2は、タイトルを獲得し、更新を実行すると、Corelが、対応するキャッシュラインの失敗を行います。これに前後L3キャッシュによって、パフォーマンスが大幅に影響を与えました。競合コアが異なるスロットにある場合、それは追加のクロススロット接続が必要であり、問​​題はより深刻であり得ます。

 

参考記事:

(1)http://mail.openjdk.java.net/pipermail/hotspot-dev/2012-November/007309.html

(2)https://www.cnblogs.com/Binhua-Liu/p/5620339.html

 

おすすめ

転載: www.cnblogs.com/mazhimazhi/p/11324870.html