タグ付けされた質問 「jvm-hotspot」

11
Javaで正しいマイクロベンチマークを作成するにはどうすればよいですか?
OverаэтотвопросестьответынаStack Overflowнарусском:Какправильнописатьмикро-тестывJava? Javaで正しいマイクロベンチマークをどのように作成(および実行)しますか? 考えるべきさまざまなことを示すコードサンプルとコメントを探しています。 例:ベンチマークは、時間/反復または反復/時間を測定する必要がありますか?その理由は? 関連:ストップウォッチのベンチマークは受け入れられますか?

2
JDKコードの実行時にJava JITはチートしますか?
私はいくつかのコードのベンチマークを行っていましたがjava.math.BigInteger、まったく同じアルゴリズムを使用していても、と同じくらい高速に実行することができませんでした。だから私java.math.BigIntegerは自分のパッケージにソースをコピーしてこれを試しました: //import java.math.BigInteger; public class MultiplyTest { public static void main(String[] args) { Random r = new Random(1); long tm = 0, count = 0,result=0; for (int i = 0; i < 400000; i++) { int s1 = 400, s2 = 400; BigInteger a = new BigInteger(s1 * 8, r), …
405 java  jvm  jit  jvm-hotspot 

11
「java -server」と「java -client」の本当の違いは?
「java -server」と「java -client」の間に実際の実用的な違いはありますか? Sunのサイトで見つけられるのは漠然 「-serverの起動は遅くなりますが、実行は速くなります」。 実際の違いは何ですか?(現在、JDK 1.6.0_07を使用しています。)
394 java  jvm  jvm-hotspot 

12
クラスJavaLaunchHelperは…libinstrument.dylibの両方に実装されています。2つのうちの1つが使用されます。どれが未定義か
私は最新のものにアップグレードしたJava 7u40上のMacOS XとEclipseを使って自分のアプリケーションを起動するときにコンソールに次のメッセージが出始めました。アプリは正常に動作しますが、問題の原因を見つけ、できればそれを修正したいと考えています。 objc[10012]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined. このメッセージが表示される理由と修正方法を知っている人はいますか?
274 java  eclipse  macos  jvm  jvm-hotspot 

6
JVMとHotSpotの違いは?
HotSpotとは具体的には何であり、JVMおよびOpenJDKとどのように関連していますか?ライブラリですか?正確には何をしますか? また、OpenJDKとHotSpotの違いは何ですか?
147 java  jvm-hotspot 

4
jmapを実行してソケットファイルを開くことができません
jmapプロセスのヒープダンプを取得するために実行する必要がありました。しかしjvm返されました: Unable to open socket file: target process not responding or HotSpot VM not loaded The -F option can be used when the target process is not responding だから私は-F:を使用しました ./jmap -F -dump:format=b,file=heap.bin 10330 Attaching to process ID 10331, please wait... Debugger attached successfully. Server compiler detected. JVM version is 24.51-b03 …
88 java  linux  jvm  jvm-hotspot 

4
ReservedCodeCacheSizeおよびInitialCodeCacheSizeとは何ですか?
誰かがJVMオプションReservedCodeCacheSizeとInitialCodeCacheSizeは何かを説明できますか?具体的には、いつ/なぜ変更したいのですか?適切なサイズを決定するにはどうすればよいですか? これはドキュメントが言うことです: -XX:ReservedCodeCacheSize = 32m予約済みコードキャッシュサイズ(バイト単位)-最大コードキャッシュサイズ。[Solaris 64ビット、amd64、および-server x86:2048m; 1.5.0_06以前では、Solaris 64ビットおよびand64:1024m。]
86 java  jvm  jvm-hotspot 


4
WindowsでのマルチスレッドJavaアプリケーションのCPU使用率が低すぎる
私は、数値最適化問題のクラスを解決するためのJavaアプリケーションに取り組んでいます-より正確に言うと、大規模線形計画問題です。単一の問題は、並列に解決できる小さなサブ問題に分割できます。CPUコアよりも多くのサブ問題があるため、ExecutorServiceを使用して、各サブ問題を、ExecutorServiceに送信されるCallableとして定義します。サブ問題を解決するには、ネイティブライブラリ(この場合は線形計画法ソルバー)を呼び出す必要があります。 問題 最大44の物理コアと最大256gのメモリを備えたUnixおよびWindowsシステムでアプリケーションを実行できますが、大きな問題の場合、Windowsでの計算時間はLinuxでの計算時間よりも桁違いに長くなります。Windowsはかなり多くのメモリを必要とするだけでなく、時間の経過に伴うCPU使用率は最初の25%から数時間後には5%に低下します。Windowsのタスクマネージャのスクリーンショットは次のとおりです。 観察 問題全体の大規模なインスタンスの解決時間は数時間から数日の範囲で、最大32gのメモリを消費します(UNIXの場合)。副問題の解決時間はmsの範囲です。 この問題は、数分で解決できる小さな問題では発生しません。 Linuxはそのままの状態で両方のソケットを使用しますが、Windowsは、アプリケーションが両方のコアを利用するように、BIOSでメモリインターリービングを明示的にアクティブにする必要があります。ただし、これを行うかどうかは、時間の経過に伴う全体的なCPU使用率の低下には影響しません。 VisualVMのスレッドを見ると、すべてのプールスレッドが実行されていますが、待機中のものはありません。 VisualVMによると、90%のCPU時間はネイティブ関数呼び出しに費やされています(小さな線形プログラムを解く) アプリケーションは多くのオブジェクトを作成および逆参照しないため、ガベージコレクションは問題になりません。また、ほとんどのメモリはオフヒープに割り当てられているようです。最大のインスタンスでは、Linuxでは4g、Windowsでは8gのヒープで十分です。 私が試したこと あらゆる種類のJVM引数、高XMS、高メタスペース、UseNUMAフラグ、その他のGC。 異なるJVM(ホットスポット8、9、10、11)。 さまざまな線形計画ソルバーのさまざまなネイティブライブラリ(CLP、Xpress、Cplex、Gurobi)。 ご質問 ネイティブコールを多用する大規模なマルチスレッドJavaアプリケーションのLinuxとWindowsのパフォーマンスの違いは何が原因ですか? たとえば、Windowsに役立つ実装で変更できるものはありますか。たとえば、何千ものCallableを受け取るExecutorServiceの使用を避け、代わりに何をすべきでしょうか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.