問題タブ [jvm]

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.

0 投票する
3 に答える
890 参照

java - X ディスプレイ名を JVM に渡すことは可能ですか?

JVMがJVMを介してウィンドウを起動するXディスプレイを指定することは可能ですか? 私はこのようなことを考えています

マニュアルページを見ましたが、何も見つかりません。

または、このようなシェルスクリプトでjvmへの呼び出しをラップする必要がありますか?

JVM に直接渡すことができる引数を指定するためだけにスクリプトを作成したくありません。

PS: いいえ、環境の DISPLAY 変数を変更したくありません。好きな DISPLAY で JVM を起動したい :)

更新 「2 番目のソリューションを使用すると問題になるのはなぜですか」という質問への回答 2 番目のソリューションを使用すると、複数の異なるディスプレイで jvm セッションを開始したい場合は、セッションごとに DISPLAY を設定する必要があります。

私が探しているのは、Xprogramsでできることのようなものです

試してみてくださいxterm -display my_display:0.0 私の質問は、jvmでこれを行うことができるかということです。どこにも文書化されていません。それができない場合、正しい答えは「いいえ、できません」である必要があります。私はすでに別の方法を知っています:)

ありがとう

0 投票する
2 に答える
2489 参照

java - How to reset or kill JVM context?

I am running a simple java client through java <class file> command. The java command is actually invoked by a system process. This is on Unix.

We were facing problem with X11 Display. So we added export DISPLAY=:0.0 in the startup file and the Display problem was resolved. Now when the export DISPLAY=:0.0 line is removed from the startup file and the java client is run again, we are not able to revert to old state, i.e., we no longer get the X11 Display error. So there is something that is persisting on the system. Is there any way to make sure the JVM context was killed before running the client?

We have killed the process that triggers the java client, then restarted the process to run the java client again. But not succeeded to go back to the old state.

[Edit] I forgot to mention that I have already tried "unset DISPLAY" in the stop file. The startup fie is run when the environment is brought up and the stop file is run when the environment is brought down. I have also tried headless mode but that doesn't work for our program.

0 投票する
5 に答える
380 参照

java - JVM の最悪のケースの実装はありますか?

Java メモリー・モデルは、スレッドがメモリーを介してどのように対話するかについて、想定できることと想定できないことを明確にします。たとえば、あるスレッドが適切な同期を行わずにフィールドに新しい値を書き込んだ場合、その新しい値は他のスレッドによって観測可能であるとは限りません。ただし、実際には、書き込みと読み取りの間の時間、ハードウェア アーキテクチャなどによっては、同期が不十分であるにもかかわらず、他のスレッドが新しい値を読み取る可能性があります。

これにより、発見が困難で再現が困難なバグが発生する可能性があります。したがって、 Java メモリ モデルで保証されているスレッド間のメモリ同期をまったく行わない最悪のケースの JVM で Java アプリケーションを実行すると便利な場合があります。そのような最悪のケースの JVM 実装は存在しますか?

0 投票する
4 に答える
38666 参照

java - JVM Eclipse が実行されているものを調べる

現在、Eclipse のインストールを調整しようとしていて、「-vm」オプションにぶつかりました。SO に関する他の投稿では、常に最新の JVM を使用するのが良いと述べていました。JVM はパフォーマンスの点で向上し続けているためです。「-vm」パラメーターを指定していない場合、JVM Eclipse が実行されているものをどのように見つけることができるのか疑問に思っていました。

ドキュメントで次のことを見つけましたが、JVM の検索方法が明確ではありません。

このオプションは、Eclipse 実行可能ファイルに渡されるときに、Eclipse の実行に使用する Java VM を見つけるために使用されます。これは、適切な Java 実行可能ファイルへの完全なファイル システム パスである必要があります。指定しない場合、Eclipse 実行可能ファイルは検索アルゴリズムを使用して適切な VM を見つけます。いずれにせよ、実行可能ファイルは、-vm 引数を使用して Java Main に使用される実際の VM へのパスを渡します。Java Main は、この値を eclipse.vm に保存します。

0 投票する
7 に答える
56000 参照

java - 大規模アプリケーション向けの JVM パフォーマンス チューニング

デフォルトの JVM パラメータは、大規模なアプリケーションの実行には最適ではありません。実際のアプリケーションで調整した人からの洞察は役に立ちます。クライアント JVM がデフォルトで使用される 32 ビット Windows マシンでアプリケーションを実行しています。-server を追加し、NewRatio を 1:3 (より大きな若い世代) に変更しました。

他に試してみて役に立ったパラメータ/チューニングはありますか?

[更新] 私が話している特定の種類のアプリケーションは、めったにシャットダウンされず、少なくとも -Xmx1024m かかるサーバー アプリケーションです。また、アプリケーションはすでにプロファイリングされていると想定します。JVM のパフォーマンスのみに関する一般的なガイドラインを探しています。

0 投票する
7 に答える
14014 参照

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 メモリ キャッシュによって占められていることに注意してください。

任意の支援やアドバイスをいただければ幸いです。

0 投票する
4 に答える
1049 参照

java - jstack出力にソース行番号を表示するには?

これは、実行中の JVM からの jstack 出力です。

QueueFooThread の行番号を Catalina プロセスのこのフレームのように表示したい

これを有効にするには、コンパイル/ブートストラップ時に何をすればよいですか? ありがとう