問題タブ [jvm-hotspot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
235 参照

java - ディスパッチ テーブルへの JIT への切り替えに Java が通常必要とするプログラマーの「支援」はどれくらいですか?

Javaは全面的に最適化を行い、ケースの数、スイッチが疎か密か、およびコードがJITがそのコードを最適化するのに十分なほどホットであるかどうかに応じて、スイッチを最適化できることを理解しています。コードが実際に非常にホットであると仮定して、ビットごとの使用やテスト対象の変数に対する「アシスト」をさらに提供する必要があるか、変数を「より適切な」数値にビットごとにシフトする必要があるかどうか疑問に思っています。「より良い」は、0xFFXX ではなく 0xXX です。何が必要かを具体的に述べたホットスポット JIT ドキュメントはありますか? 「xxx の一般的なプログラミング ガイドラインに従ってください」ではなく。

0 投票する
2 に答える
4291 参照

java - Javaでインラインを強制する

私はこの投稿を見ました。良い感じ。ただし、HotSpot(サーバーやクライアントに依存しない、またはSunのバージョンに依存しない)がコードをインライン化する場合、作成者またはその他の認識している人々がコーディングのコツを教えてくれます。

0 投票する
1 に答える
369 参照

java - Java HotSpot VMの開発環境をセットアップするにはどうすればよいですか?

Java HotSpot VMを理解するための最良の方法は何ですか?また、ソースコードに変更を加えて独自の機能を追加したい場合、最適な開発環境は何でしょうか(ctagsは大規模なコードベースでうまく機能しますか、それとも本格的なIDEが必要ですか)。

0 投票する
2 に答える
1804 参照

java - JVMクラッシュログのBufferBlob::Interpreterはどういう意味ですか?

アプリケーションで時折発生するJVMクラッシュを調査しています。hs_errファイルには、クラッシュに関する次の詳細が含まれています。

..。

..。

..。

つまり、これは、Javaコードを実行しているときにJVMがセグメンテーション違反に遭遇したことを示しています。エラーログには、クラッシュしたスレッドのスタックに関する情報も含まれています。

クラッシュからコアファイルに接続し、スタックの詳細を取得するためにGDBを使用しました。これにより、次の出力が得られます。

これは、元のバグレポートにリストされている6つのlibjvm.soフレームが、Javaロックの取得に関連していることを示しています。ただし、ロックを使用するコードがorg.myapp.AppClass.getBytes()内に見つかりません。

スタック内のBufferBlob::Interpreter行はどういう意味ですか?これらのJavaスタックフレームですか?JVMスタックフレーム?これらのスタックフレームで何が呼ばれていたかを理解することは可能ですか?

注:新しいHotspotJVMに切り替えようとすることを提案しないでください。私はCMSコレクターに依存していますが、最近のV1.6ホットスポットJVMはどれもCMSコレクターで十分に安定していません。

編集:このドキュメント(http://www.oracle.com/technetwork/java/javase/tsg-vm-149989.pdf)には、「v」フレームは「VMで生成されたスタブフレーム」であると記載されています。これが何を意味するのか分かりますか?

EDIT2:org.myapp.AppClass.getBytes()はDataInputStreamから読み取ります。これには、次のスタックトレースが含まれる可能性があります。

この最後のメソッドはロックを取得します。これは、上記のJVMコードへの最終的な呼び出しのソースである可能性があります。上記のこのスタックには、getBytes()の下に5つのJavaスタックフレームがあるという優れた機能があります。これは、「Javaフレーム」のリストにあるBufferBlob::Interpreterの5行とうまく一致します。

これにより、いくつかの新しい質問が発生します。

  • 「ネイティブフレーム」セクションの下のBufferBlob::Interpreterの5行が、「Javaフレーム」セクションの下の同じ行の単なる複製である可能性はありますか?
  • エラーログにこれらの5つのスタックフレームの詳細が表示されないのはなぜですか?

編集3-このOracleのバグは同じ/類似のバグである可能性が高い:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id = 6676175

示されているスタックトレースは同一ではありませんが、6u14で修正されたrevoke_and_rebiasのまれな競合状態について言及しています。

EDIT4-バウンティメッセージには「ホットスポットの実装に精通している」と記載する必要があります

0 投票する
3 に答える
24749 参照

java - JRockit JVM と HotSpot JVM の比較

2 つの JVM はすべて標準 JVM 仕様に依存しているため、2 つの JVM の長所と短所について簡単な情報を教えていただければ幸いです。

0 投票する
2 に答える
1521 参照

java - JVM ロックレスでのメモリ割り当て

Java で実行する場合new Object()、jvm はロックレス アルゴリズムを使用してメモリを割り当てますか、それともロックする必要がありますか?

この場合に言及している JVM は Hotspot VM です。私がそれについて知っていることはほとんどありませんが、ポインターをインクリメントするだけでメモリを超高速に割り当てることができます。しかし、複数のスレッドの場合、そのインクリメントにはロックまたは CAS が必要ですか?

0 投票する
3 に答える
298427 参照

java - -XX:MaxPermSize(-XX:PermSizeありまたはなし)

Java.lang.OutOfMemoryError:PermGenスペースエラーが発生し、指定したパラメータ-Xmsとパラメータ以外のTomcatJVMパラメータを確認しました。少しプロファイリングした後、PermGenスペースでガベージコレクションが発生し、フルに実行されないようにすることがあります。-Xmx-XX:MaxPermSize=128m

私の質問は次のとおりです。-XX:MaxPermSize私も指定した場合の違いは何-XX:PermSizeですか?合計メモリがXmx+maxPermSizeになることはわかっていますが、が指定されているときにそこにある-XX:PermSizeべきではない理由は他に-XX:MaxPermSizeありますか?

これらのJVMパラメータを実際に扱った経験がある場合は、共有してください。

ps。JVMはHotSpot64ビットサーバーVMビルド16.2-b04です

0 投票する
1 に答える
1551 参照

java - ヒープダンプから、Java オブジェクトが在職期間または Eden スペースにあるかどうかを知るにはどうすればよいですか?

Hotspot JVM ヒープ ダンプがあり、オブジェクトが Tenure スペース、Eden スペース、または Survivor スペースのいずれに存在するかを調べようとしましたが、できませんでした。

誰かが私を助けることができれば感謝します。

0 投票する
3 に答える
2386 参照

java - JIT を使用したインタープリターは、JIT を使用しない場合よりも高速なコードを生成するのはなぜですか?

JIT コンパイラーによってバイトコードをマシンコードにコンパイルするという概念については、まだよくわかりません。非 JIT インタープリターよりも高速なコードを生成する理由を知りたいです。このプロセスがどのように行われるかについて、誰かが私に良い例を教えてもらえますか?

0 投票する
2 に答える
2843 参照

java - Java 7 は少なくとも Java 6 と同じくらい安定していますか?

Java 7 が最初にリリースされたとき、コンパイラの最適化にいくつかのバグがあったため、Java 7を何にも使用しないようにという多くの提案があったことを覚えています。これは明らかに単なる仮説ではありませんでした。それ以来、私は状況を注意深く追跡していません。これらの問題は解決されており、一般的に現時点で安全に使用できると考えられていますか?

java.com のこのページを見ると、おそらくまだ準備が整っていないのではないかと思いますが、あまり詳しく読みたくありません。まだ安全でない場合-XX:-UseLoopPredicate、VM 引数として使用するのに十分ですか?

Lucene の特定の問題だけでなく、Java 7 の一般的な安定性についても言及していることに注意してください。Java 7 は少なくとも Java 6 と同じくらい安定していますか?