問題タブ [jvm-arguments]
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 - JVM引数を使用してjava.util.CalendarのfirstDayOfWeekを指定する方法
java.util.CalendarのデフォルトのfirstDayOfWeekをSUNDAYからMONDAYに変更しようとしています。このコードを追加する代わりに、JVM構成を介してこれを実現することは可能ですか?
java - 実行時に取得されるファイルにJVM引数を配置する
現在のアプリケーションのjarを作成していますが、これにはいくつかのJVM引数を設定する必要がありました。
これらのJVM引数をコマンドラインではなくファイルに設定する方法はありますか?
私はいくつかのハンティングを行いましたが、おそらくjava-argsを設定することで、java.propertiesファイルで何かを実行できるようですが、これを実行するための形式への参照が見つかりません。
私は間違った木を吠えていますか?
これは可能ですか?もしそうなら、どのように?
そうでない場合、JVM引数を指定する他の方法はありますか?
java - デバッグ引数を使用してJVMを起動せずにJavaアプリケーションをデバッグします
通常、実行中のjvmにデバッガーをアタッチするには、次のような引数を使用してjvmを開始する必要があります。
デバッグモードで開始されていないプロセスをデバッグしたい場合、どうすればよいですか?
この状況は、本番システム(つまり、デバッグ引数なしで起動された)が「ランダム」(私はこの用語を大まかに使用します)バグを示したときに発生します。したがって、バグを再現する方法が誰にもわからないため、適切な引数を使用してjvmを再起動することはできません。この状況でJVMに接続することは不可能ですか?
明確にするために、jdbなどのツールを使用して、デバッグモードで開始されない限り、すでに実行中のJVMに接続することはできません。
JVMのマニュアルページから
jdbを使用する別の方法は、すでに実行されているJavaVMに接続することです。jdbでデバッグするVMは、次のオプションで起動する必要があります。
java - 大規模アプリケーション向けの JVM パフォーマンス チューニング
デフォルトの JVM パラメータは、大規模なアプリケーションの実行には最適ではありません。実際のアプリケーションで調整した人からの洞察は役に立ちます。クライアント JVM がデフォルトで使用される 32 ビット Windows マシンでアプリケーションを実行しています。-server を追加し、NewRatio を 1:3 (より大きな若い世代) に変更しました。
他に試してみて役に立ったパラメータ/チューニングはありますか?
[更新] 私が話している特定の種類のアプリケーションは、めったにシャットダウンされず、少なくとも -Xmx1024m かかるサーバー アプリケーションです。また、アプリケーションはすでにプロファイリングされていると想定します。JVM のパフォーマンスのみに関する一般的なガイドラインを探しています。
java - UseConcMarkSweepGC を使用して JVM 一時停止時間を 1 秒以上短縮する
16Gb の RAM、8 コア プロセッサ、およびすべて CentOS リリース 5.2 (Final) で実行されている Java 1.6 を搭載したマシンで、メモリを集中的に使用するアプリを実行しています。正確な JVM の詳細は次のとおりです。
次のコマンド ライン オプションを使用してアプリを起動しています。
私のアプリケーションは JSON-RPC API を公開しており、私の目標は 25 ミリ秒以内にリクエストに応答することです。残念ながら、最大で 1 秒以上の遅延が見られます。これはガベージ コレクションが原因のようです。より長い例のいくつかを次に示します。
これらの各ガベージ コレクション イベントには、示されているガベージ コレクションの長さとほぼ同じ時間 (数ミリ秒以内) の API 応答の遅延が伴いました。
いくつかの典型的な例を次に示します (これらはすべて数秒以内に生成されました)。
問題は、UseConcMarkSweepGC がこれを回避するか、少なくとも非常にまれにするだろうと私が考えたことです。反対に、100 ミリ秒を超える遅延はほぼ 1 分に 1 回以上発生しています (ただし、1 秒を超える遅延はかなりまれであり、おそらく 10 分または 15 分に 1 回です)。
もう 1 つのことは、スレッドが一時停止されるのは FULL GC だけだと思っていましたが、これらは完全な GC ではないようです。
ほとんどのメモリは、ソフト参照を利用する LRU メモリ キャッシュによって占められていることに注意してください。
任意の支援やアドバイスをいただければ幸いです。
java - JNI 経由での JVM のロードに失敗したときにエラー メッセージを表示するにはどうすればよいですか?
jvm のロードに失敗した理由を説明するエラー メッセージを取得したいと考えています。ここに提供されている例から:
http://java.sun.com/docs/books/jni/html/invoke.html
この例を抽出しました:
私の特定のケースでは、vm_args に無効な引数を指定しており、コマンド ラインで「認識されないオプション: -foo=bar」と表示されることを期待しています。
さらにテストすると、jvm がメッセージ I want to stdout または stderr を出力しているように見えます。探しているエラーを取得するには、stdout と stderr をキャプチャする必要があると思います (もちろん、もっと簡単な方法がない限り)。私はC++でコーディングしているので、誰かがエラーを文字列ストリームにキャプチャする方法を示すことができれば理想的です。
ありがとう、ランディ
java - 実行中の Linux プロセスに Ctrl-Break を送信するにはどうすればよいですか?
Sun の JDK 1.4.2_18 で実行されているアプリケーションでメモリ リークをデバッグしています。このバージョンは、コマンド ライン パラメータ -XX:+HeapDumpOnCtrlBreak をサポートしているようです。これにより、コントロール ブレークが発生したときに JVM がヒープをダンプすると考えられます。これを Linux ボックスのバックグラウンド プロセスに送信するにはどうすればよいですか? キルシグナルはこれが機能するはずの方法のようですが、少なくとも私のUbuntuボックスでは、kill -lは明らかにCtrl-Breakであるとは何も報告しません。
更新: Sun JDK 1.4.2_18 で Kill -3 をテストしました (_14 はこの方法でヒープを最初にダンプしました)。ヒープ ダンプ ファイルが作成され、プロセスがまだ実行されていました。
java - Javaヒープサイズを永続的に増やしますか?
自分のコンピューターでjvmのデフォルトのヒープサイズを設定する方法はありますか?デフォルトのjvmサイズで常に超過ポイントに達するカスタムプログラムを常に実行しているため、1gに設定したいと思います。
コマンドラインからJavaアプリを実行するたびに-XmX1gと入力することを覚えておく必要はありません...
これを正しく行うには、管理者の方法が必要ですか?
java - Javaの-Xmsおよび-Xmxオプションの速度のトレードオフ
これらの2つのコマンドが与えられた
A:
B:
2つの質問があります:
- コマンドAはそのパラメーターでより多くのメモリを予約するので、AはBよりも速く実行されますか?
- 実行中のプロセスとプログラムの出力にどのよう
-Xmx
に影響しますか?-Xms