JVM パラメータとは何ですか? 通常、写真を撮るには携帯電話で十分ですが、愛好家は一眼レフカメラなどのより専門的な機器を使用します。 SLR カメラには P/A/S/M といういくつかのモードがあり、そのうち P はポイントアンドシュートモードです。プログラムは環境に応じてシャッタースピードと絞りサイズを自動的に設定し、比較的適切な露出効果を実現します。モードAは絞り優先です。ユーザーは絞りサイズとシャッタースピードを自分で設定し、カメラプログラムに決定を任せることができます。半自動モードに似ています。 S モードはシャッター優先モードで、シャッター速度をユーザーが設定できることを除いて A モードに似ています。最後のモードは M モードです。これは完全に手動のモードです。ユーザーはシャッタースピードや絞りサイズなどを調整できます。これはユーザーに多くのことを要求しますが、多くの専門家は自分の作品を撮影するために M モードを選択することがよくあります。 JVM をカメラ、JVM パラメータを絞りサイズやシャッタースピードなどのパラメータ値として想像することができます。これらのパラメータはプログラムの動作に大きな影響を与えます。 Java プログラムは JVM 上で実行され、JVM は環境に応じていくつかの JVM パラメータを自動的に設定しますが、これらのパラメータが最適であるとは保証されません。一部のパラメータは基本的に起動時に設定され、動作中に調整することはできません。 JVM でプログラムをより適切に実行できるようにするには、JVM パラメータについてある程度理解し、これらの JVM パラメータがどのようなシナリオで有効であるか、またどのような役割を果たすかを知る必要があります。たとえば、クラスがアンロードされることが予想されますか? JVM の動作を理解するために、操作中にログを印刷することはできますか?問題が発生した場合に、オンサイトデータを自動的に保持できますか?これらはすべて JVM パラメータを通じて設定できます。 JVM パラメータはいくつありますか? カメラに調整できるパラメータ値はほんのわずかです。では、JVM パラメータはいくつあるのでしょうか?おそらく1,000以上あります。衝撃的ですか?はい、確かにたくさんあります。 PerfMa コミュニティにアクセスすると、これらの JVM パラメータをすべて確認できます (注: これは、JVM パラメータの経験を共有するために特別に設計された PerfMa コミュニティのディスカッション エリアです)。もちろん、必ずしもすべての JVM パラメータを明確に理解する必要はありませんが、パフォーマンス チューニングに役立ついくつかの一般的な JVM パラメータを理解することは必要です。 JVMパラメータが通常設定される場所 Java プログラムを起動するのは非常に簡単です。コマンドは次のようになります
上記の Main クラスがプログラムのスタートアップ クラスであることは誰もが知っています。 JVMが実行されると、このMainクラスで次のシグネチャを持つ関数が見つかります。
ここで関数の args パラメータをどのように渡すのでしょうか?起動コマンドのメインクラスの後にスペースで区切って関連するパラメータを追加すると、JVMはこれらのパラメータを引数の一部として自動的に渡します。例:
この方法では、args配列に2つの要素arg1とarg2が自動的に入力され、プログラムでこれらのパラメータを使用できるようになります。 arg1 と arg2 をプログラム パラメーターと呼びますが、このコースに関連するのはプログラム パラメーターではなく、JVM パラメーターです。では、JVM パラメータはどこに配置されるのでしょうか? JVMパラメータはメインクラスの前、javaコマンドの後に配置されます。例:
ここでの -Xmx100M は実際には JVM パラメータなので、すべての JVM パラメータはこの位置に配置されます。この位置にない場合、設定した JVM パラメータは無効になります。パラメータが期待どおりに動作しない場合は、まず JVM パラメータ設定の場所を確認してください。もちろん、JVM パラメータが設定と一致しなくなる他の理由がある可能性もあります。 JVMパラメータの書き方 JVM パラメータの書き方は?いくつかのオプションがあります。
-X および - 開始パラメータは通常、1 つ以上の -XX: パラメータに変換されますが、これは単に記述方法を簡略化したものです。たとえば、-Xmx100M は JVM で自動的に -XX:MaxHeapSize=100M に変換され、-verbose:class は自動的に -XX:+TraceClassLoading -XX:+TraceClassUnloading に変換されます。 Flagsパラメータを介してJVMパラメータファイルを指定します JVM パラメータがソース コードとともにリリースされている場合、JVM パラメータのみを変更するには、ブランチをプルしてコードを送信する必要があります。これはあまりユーザーフレンドリーではありません。何か良い解決策はあるでしょうか? 起動パラメータにパラメータを設定するだけで済みます。このパラメータは次のようになります。
このパラメータを設定したら、サービスの /home/admin ディレクトリにフラグ ファイルを作成し、このファイルにすべての JVM パラメータを指定するだけです。ただし、フラグ ファイルにパラメータを書き込むにはいくつかの要件があります。 -X などのパラメータは設定できませんが、同等の -XX パラメータに置き換えることができます。たとえば、-Xmx100M は -XX:MaxHeapSize=100M にのみ置き換えることができます。同時に、ファイル内に -XX: が表示されないようにしてください。キー=値または +/- キーだけです。異なるパラメータは改行またはスペースで区切ることができます。たとえば、フラグ ファイルの内容は次のようになります。
実際、それは
これを確認するには、-XX:+PrintVMOptionsを追加して、設定されたJVMパラメータを印刷します。たとえば、
VMOptionsFileパラメータを使用してJVMパラメータファイルを指定します。 上記の Flags パラメータの使用は、パラメータの設定が通常の記述方法と異なるため、扱いにくい場合があります。 JDK バージョンが 1.8 より大きい場合、JVM は Flags の代わりに VMOptionsFile というよりユーザーフレンドリーなパラメータを提供します。これもファイルを指定します。このファイル内の JVM パラメータの記述方法は、java コマンドの後に記述する JVM パラメータとまったく同じです。
フラグファイルには次のように記述できます。
すごく便利じゃないですか? [この記事は51CTOコラムニストのLi Jiapeng氏によるオリジナル記事です。転載する場合は、WeChatパブリックアカウント(你假笨、id:lovestblog)を通じて著者に連絡し、許可を得てください。 この著者の他の記事を読むにはここをクリックしてください |
<<: クラウドサービスの価値を最大化するにはどうすればよいでしょうか?
>>: Java仮想マシンオブジェクトの生存判定とガベージコレクションアルゴリズム
マルチクラウドは実際には IT 用語です。もちろん、現在ではパブリック クラウド、プライベート クラ...
動画業界のライセンスは多種多様で、企業側はライセンスの違いに戸惑うほどです。各省庁や協会が数日おきに...
HostCat ブログは開設されて 3 年になります。ブログで私の QQ を見つけて、PayPal ...
青大根アルゴリズムの再登場は、より広範囲な影響を及ぼしています。文字通り、大規模なウェブサイトでのソ...
Google より前に作られた検索エンジンのウェブサイト、Altavista がまだオンラインになっ...
これから過ぎ去ろうとしている年は、残酷で寒い年だと思っています。6月、8月、11月の数字は、すべての...
オリジナル記事は成功への魔法の武器です。優れたソフト製品はユーザーの注目を集め、直感的な結果を生み出...
Amazon グループ会社の Amazon Web Services, Inc. (AWS) は本日...
ご存知のとおり、私たちウェブマスターは、常に生計を百度に頼っています。百度のあらゆる動きは、私たちの...
編集長:金 匡道雷軍は再び携帯電話を叩き壊した。 2011年8月19日、北京のガレージコーヒーで開催...
Dangdang.comがTmallへの参入を発表(写真提供:テンセントテクノロジー) Dangda...
quickpacket.com は確かに比較的長い歴史を持つホスティング会社です (2003 年設立...
通常、Web サイトを構築する前に、キーワード トラフィックを見積もります。百度指数は通常、基準値と...
arkecxはどうですか? arkecxの速度はどうですか? arkecxは良いですか? HostC...
エイプリルフール?まだ早いですよ!おっしゃる通り、バーストは特別価格のサーバーを 3 つ発売しました...