問題タブ [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.
java - netbeans にホットスポット サーバー vm を使用させる方法はありますか
デフォルトでnetbeansがホットスポットサーバーvmを使用しているかどうかは誰にもわかりませんか? それがそうでない選択肢になるかどうかを理解しようとしています。ありがとう!
-ロジャー-
java - ホットスポットサーバーのJVMで実行すると、このコードスニペットに実際に時間がかかるのはなぜですか?
コードスニペットは次のとおりです。
https://gist.github.com/987751
私にとっては、次のような時間があります。
したがって、最初の質問は「なぜクライアントVMよりも遅いのか」です。
また、次の質問は、「メソッド呼び出し方法でその超0msの高速化を実現することは可能ですか(ほぼ同じコードです)」と思います。
また、この奇妙さにもかかわらず、たとえば匿名のクラスなどでも、ホットスポットは一般的にはるかに高速に実行されると思いますか?
ありがとう!
-ロジャー-
java - JVM はオブジェクトのインスタンス変数とメソッドをインライン化する予定はありますか?
非常にタイトな内部ループがあるとします。各反復は、アルゴリズムに関するいくつかの単純なデータを格納し、それを操作するための単純なロジックを持つ単一の簿記オブジェクトにアクセスして変更します。
ブックキーピング オブジェクトは非公開かつ最終的であり、そのすべてのメソッドは非公開、最終、および @inline です。以下に例を示します (Scala 構文):
JVM は DataRemaining オブジェクト全体をインライン化しFrobnicate.frobnicate
ますか? つまり、start
andend
をローカル変数として扱い、 nextChunk コードを に直接インライン化しfrobnicate
ますか?
java - Hotspot's scavenge GC stops running, leaving only the mark-sweep GC
I'm experiencing something weird with Hotspot's GC in a certain program. Sometimes, it seems almost as if the scavenge GC just dies, leaving only the mark-sweep GC running instead every time the Eden space fills up. Needless to say, this is horrible for performance. I haven't managed to figure out the conditions for this issue to occur.
Looking at a JVM with this behavior right now, the old-gen is 170 MB (used and max) and never grows or shrinks over a collection, the Eden gen is 85 MB, the Survivor spaces are never used whatsoever (which I guess is consistent with the scavenge GC not running), and the total allocated heap size is 256 MB (matching, obviously, Old+Eden).
Any clues as to what might cause this?
java - Java の最適化: (Hotspot/Dalvik) 定数を返す最終メソッドの最適化?
Hotspot または Dalvik が、定数 (静的最終) int 値を返す最終メソッドへの呼び出しをインライン化するのに十分スマートであるかどうか、誰か教えてもらえますか? 理想的には、メソッド呼び出しは定数に置き換えられます。これは、クラスのロード時または JIT によるものである可能性があります。
これは、私が取り組んでいるいくつかのコードの設計に影響を与えます。
java - この場合、Java が C よりも速い (そして遅い) のはなぜですか?
K&R を読んで C の学習を始めたばかりの人がいて、最初のページに華氏から摂氏への変換ループが印刷されています。
彼は Java は遅いと言われました。それで、最近Javaは非常に競争力がありますが、この単純なケースではCの方がおそらく速いだろうと彼に言いました。彼を証明したくて、基本的に「System.out」を追加しました。printf() の前。
10倍以上遅くなりました。やりすぎ。私は当惑しました。String オブジェクトの作成、GC、-server、yada、yada、yada について考えました。
PrintSteam.write()
実際にはほぼ 100% の時間が printf() (出力は /dev/null にパイプされます) に費やされていることがわかったとき、私はさらに困惑しました。
いくつかいじった後、私はこれを思いつきました(今のところ %f の丸めはしません):
したがって、これは NIO を使用します。また、テストした 2 台のマシンで gcc -O2 よりも優れています。
質問:
- C から Java へのリテラル トランススクリプト (つまり
PrintStream
)が非常に遅いのはなぜですか? - (コメント
out.printf()
が遅いのはなぜですか [時間の経過とともにパフォーマンスが低下する可能性があります]?) - 最後に: なぜ私のソリューションは C よりも高速なのですか (JVM の起動時間を含む)?
java - JvmJITとホットスポット-違いは何ですか
これらの用語が使用されていると聞きましたが、Javaフレームワークのどこにそれらがすべて適合するかについてのトップレベルのビューを見つけることができないようです。JITがコンパイルメカニズムであることは知っていますが、JVMの一部ですか?ホットスポットとは何ですか?新しいタイプのVMですか?
java - Sun の JVM の内部動作に関する情報はどこにありますか?
開発者として、仮想メソッドとインターフェイス メソッドの呼び出しのコストを知りたいです。invokeinterface
これで、が よりも遅くなる理由はわかりましたがinvokevirtual
、Sun がリリースした JVM の最新バージョンでinvokeinterface
. どうすればそのような情報を見つけることができますか?
java - ホットスポットのデフォルトの最大ヒープ サイズ
次のドキュメントhttp://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html#par_gc.ergonomics.default_sizeによると、並列 GC のデフォルトの最大ヒープ サイズは、式 MIN(メモリ/4、1GB)。式から明らかですが、ドキュメントには、「マシンにインストールされているメモリの量に関係なく、デフォルトの最大ヒープ サイズは 1GB を超えない」と記載されています。次のプログラムを書いたことを確認するには
このプログラムは、16Gb の RAM を搭載したボックスで実行しました。
古い世代では 2GB の配列が割り当てられていました。MaxHeapSize は 4GB で、システム メモリの 1/4 です。JVM がヒープ用に 4GB を予約したのはなぜですか?
java - ReservedCodeCacheSize と InitialCodeCacheSize とは何ですか?
誰かがJVMオプションReservedCodeCacheSize
とInitialCodeCacheSize
は何かを説明できますか? 具体的には、いつ/なぜ変更したいのですか? 適切なサイズはどうやって決めるのですか?
これはドキュメントが言うことです:
-XX:ReservedCodeCacheSize=32m 予約済みコード キャッシュ サイズ (バイト単位) - 最大コード キャッシュ サイズ。[Solaris 64 ビット、amd64、および -server x86: 2048m; 1.5.0_06 以前では、Solaris 64 ビットおよび and64: 1024m.]