java - 実行時のRAM使用量が無制限のjarをビルドする

okwaves2024-01-25  7

私は、本番環境で使用され、サーバー上でサービスとして実行される非常に複雑なソフトウェアを構築しています。 このjarを作成する必要があります。自分のプログラムで行われたいくつかの計算で実行するときに最大RAM使用量を設定する必要があります。ビルドされたプログラムを実行する前にメモリを設定する方法があることはわかりましたが、jarのメモリ量を設定したいと考えています実行中に使用する予定ですが、可能ですか?

この jar の実行時に無制限の RAM アクセスができるようにする必要があります。いいえ、それは危険です。 a に直接コーディングしないでください。pp メモリ使用量 (ある点に達した場合は削減します)。これは Java のガベージ コレクション (JVM 引数で指定されます) の仕事です。代わりに、ビルドされたプログラムを実行する前にメモリ制限を設定してください。本当にこれを実行したい場合は、System.gc() を呼び出して、JVM にガベージ コレクションを呼び出すようリクエストすることもできますが、問題を解決するには手動でコーディングするよりもはるかに優れた解決策があることを保証します。

– パルス

2020 年 9 月 4 日 19:58

さらに、あなたは決して知りませんプログラムの実行時に問題が発生した場合。問題が発生した場合 (無制限の RAM アクセスが許可されている)、問題はサーバー コンピュータをクラッシュさせるほど深刻である可能性があります。

– パルス

2020 年 9 月 4 日 20:01

@ElliottFrisch 無制限の RAM アクセスとは、サーバー コンピューター内のすべての RAM を完全に制御できることを意味すると思います。したがって、サーバーに 128 GB の RAM が搭載されている場合、アプリケーションは 128 GB の RAM すべてにアクセスして使用できます。

– パルス

2020 年 9 月 4 日 20:13

1

@AndreaDattero。はい、JVM がアプリに使用できる RAM の量を簡単に設定できます。ただし、これは Java アプリでは設定されていません。代わりに、これは、この目的のために JVM の引数を使用してアプリを起動した瞬間に設定されます。例: java -Xmx5G -jar myapp.jar。これにより、JVM が最大 5 GB の RAM を使用できるようにアプリが実行されます。 [実際には、5G はヒープスペース (メイン Java メモリ) 専用であり、permgen やその他の補助メモリスペースにはもう少し多く使用されますが、通常はそれほど多くありません。] docs.oracle.com/en で他の JVM 引数を確認してください。 /java/javase/13/docs/specs/man/java.html

– モールイチオ・グジンスキー

2020 年 9 月 5 日 20:19

1

これにも興味があるかもしれません: stackoverflow.com/questions/14763079/…

– マウリシオ・グジンスキー

2020 年 9 月 5 日 20:21



------------------------

ここには 2 つの問題があります。前述したように、要求できるのは特定の量のメモリのみです。効率的なガベージ コレクションは、不要になったメモリを再利用するのに役立ちます。

2 番目の、おそらく本物のメッセージが彼女に発行されます。e は、アプリケーションによって実際に使用されるメモリの量を測定します。メモリの使用量を測定するためのフレームワーク (JMeter など) が多数あり、使用されるデータの量に関して測定できます。 NP 完全 (または O(n) 個以上の問題) を実行する場合、これはユーザーの観点から非常に役立ちます (「これは最大 2 つの ||| オブジェクトでうまく機能します」)

2

わかりました。どうやら私は誤解されているようです、悪いです。基本的に、サーバーが持つメモリの量を読み取って、いくつかの C を作成したいのです。アプリが使用できるメモリの最大制限を設定するための計算です。JVM がデフォルトで 256MB に設定していることはわかっています。これは私のアプリにとって十分ではないのは間違いありません。これは主にプログラムがデータを RAM に保存するためです。256MB は適切ですが、すべてのタイプに適合するとは限りませんのクライアントがこのアプリを使用する予定です。

– DRE

2020 年 9 月 5 日 10:01

1

この場合、「free」を呼び出す bash スクリプトを作成できます。 (または他のメモリツール)利用可能なRAMの量を示し、リソースを解析しますJVM コマンドラインの -Xmx 引数を設定するためにこれを使用します。私は利用可能なものの 90% 以上を使用しませんが、それはあなた次第です。アプリのメモリ消費量について: Java アプリが使用するメモリの量を知りたい場合は、visualVM: Visualvm.github.io を使用することをお勧めします。

– マウリシオ・グジンスキー

2020 年 9 月 5 日 20:26

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。