JVMで有効にされたエスケープ分析の経験

oxbow_lakes:

私はjdk6-u18 VM(solaris)で-XX:+DoEscapeAnalysis有効になっているオプションを試してみましたが、かなり期待外れの経験がありました。私はかなり多くの俳優(そのうち20,000人)がいるscalaアプリケーションを実行しています。これはゴミ作りのレシピです!

通常のアプリでは、ヒープの256Mビットで実行が、生成することができます巨大なゴミの量を。その中に定常状態のこと:

  • 時間の10%をGCに費やす
  • 30秒未満で150Mbを超えるガベージを生成し、GCを実行する

エスケープ分析が役立つかもしれないと思ったので、オプションを有効にしてアプリを再実行しました。アプリが収集したガベージを取り除くことができなくなり、最終的にはGCの実行全体に時間を費やすようになり、アプリは完全に割り当てられた状態で「フラットライン」になることがわかりました。

この時点で、私はアプリがOutOfMemoryError私が予想しものをスローしなかったと言う必要があります。おそらくJConsole(分析の実行に使用していた)が、このオプションをオンにした状態でGC統計を適切に表示しない(確信がない)?

その後、オプションを削除して再起動すると、アプリは再び「通常」になりました。誰が何が起こっているのか考えていますか?

スティーブg:

1エスケープ分析がJConsoleで有効になっていると表示されましたか?-serverオプションを使用してVMを実行していることを確認する必要があります。あなたはこれがうまくいったと思いますが、私はチェックしたいと思いました。

2エスケープ分析がScala Actorsの状況に役立つとは思いません。次のようなことをすると、大きな利益が得られる可能性があります。

def act():Unit = {
   val omgHugeObject = new OMGHugeObject();
   omgHugeObject.doSomethingCrazy();
 }

上記の例では、EscapeAnalysisはomgHugeObjectヒープではなくスタックに割り当てられるため、ガベージを作成しません。脱出分析が俳優に役立つとは思えません。それらの参照は常にアクターサブシステムに「エスケープ」します。

3 Scalaの最新リリースを使用していますか?最近のバージョンで修正されたと思うメモリリークがありました。これにより、Liftは、調査対象の独自のアクターライブラリを生成することもありました。

4 G1Garbageコレクターを試すことができます。

-XX:+UnlockExperimentalVMOptions -XX:+UseG1GC

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

エスケープされたJSONを含む文字列を有効なJSONに安全に変換するにはどうすればよいですか?

分類Dev

AWS ElasticBeanstalkでデプロイされたJavaWebアプリケーションでWebSocketリクエストを有効にする方法

分類Dev

反応アプリのコンパイル中にエラーが発生しました-エラー:*パス*のパッケージエクスポートで有効な「。」が定義されていません 目標

分類Dev

Javaでのエスケープ分析

分類Dev

NLogのネストされたJsonLayoutでスラッシュ記号のエスケープを無効にする方法

分類Dev

レールで生成されたURLのエスケープ

分類Dev

シグナルによって中断された後、システム コールの経験不足を読み取ることができますか?

分類Dev

Xcodeのサンドボックス化されたアプリケーションでサウンドを有効にする

分類Dev

Hiveで生成されたファイルエラー-「control-flow-collections」実験が有効になっていません-Flutter / Dart

分類Dev

Hiveで生成されたファイルエラー-「control-flow-collections」実験が有効になっていません-Flutter / Dart

分類Dev

Jinja2で無効にした後、自動エスケープを再度有効にします

分類Dev

Oracleはカスケードで無効化された制約を有効にしました

分類Dev

プロビジョニングされたスループットの変更の制限は、dynamo db テーブルで自動スケーリング機能を有効にした後でも適用されます

分類Dev

jQuery.parseJSONは、JSON内のエスケープされた単一引用符が原因で「無効なJSON」エラーをスローします

分類Dev

任意にネストされたForループのBig-O分析?

分類Dev

フラスコCLIを使用してアプリを実行すると、「有効なFlaskアプリケーションが...から取得されませんでした」というエラーが表示されるのはなぜですか?

分類Dev

「実験的なWSL2ベースのエンジンを有効にする」は選択できません

分類Dev

実験パッケージがインストールされたDebianの不安定で適切なアップグレードポリシー

分類Dev

これは、部分的に構築されたオブジェクトへの参照エスケープですか?

分類Dev

次のプロジェクトには有効なProjectGuidがなく、有効なソリューション(.sln)を使用してビルドされていないため、分析からスキップされます

分類Dev

HttpClient = INVALID URI-エスケープされた絶対パスが無効です

分類Dev

既存のアップロードされたアプリケーションでプッシュ通知を有効にする

分類Dev

JsonObjectで生成されたエスケープ文字(gson)にJsonArrayを追加する

分類Dev

エスケープされたouterHTMLを変数に入れる

分類Dev

無効にされたスケジュールされたエージェントが、示されたサーバーで何らかの理由で実行されました

分類Dev

エスケープシーケンスなしでfileInfoとともに保存された適切なjsonをどのように取り戻すのですか?

分類Dev

RStudioのvim編集モードでctrl-cエスケープを有効にするにはどうすればよいですか?

分類Dev

モバイル向けに設計されたWebページを開発した経験は何ですか?

分類Dev

ここでミスリルコンポーネントがどのように機能するかは、私が経験した奇妙な経験です

Related 関連記事

  1. 1

    エスケープされたJSONを含む文字列を有効なJSONに安全に変換するにはどうすればよいですか?

  2. 2

    AWS ElasticBeanstalkでデプロイされたJavaWebアプリケーションでWebSocketリクエストを有効にする方法

  3. 3

    反応アプリのコンパイル中にエラーが発生しました-エラー:*パス*のパッケージエクスポートで有効な「。」が定義されていません 目標

  4. 4

    Javaでのエスケープ分析

  5. 5

    NLogのネストされたJsonLayoutでスラッシュ記号のエスケープを無効にする方法

  6. 6

    レールで生成されたURLのエスケープ

  7. 7

    シグナルによって中断された後、システム コールの経験不足を読み取ることができますか?

  8. 8

    Xcodeのサンドボックス化されたアプリケーションでサウンドを有効にする

  9. 9

    Hiveで生成されたファイルエラー-「control-flow-collections」実験が有効になっていません-Flutter / Dart

  10. 10

    Hiveで生成されたファイルエラー-「control-flow-collections」実験が有効になっていません-Flutter / Dart

  11. 11

    Jinja2で無効にした後、自動エスケープを再度有効にします

  12. 12

    Oracleはカスケードで無効化された制約を有効にしました

  13. 13

    プロビジョニングされたスループットの変更の制限は、dynamo db テーブルで自動スケーリング機能を有効にした後でも適用されます

  14. 14

    jQuery.parseJSONは、JSON内のエスケープされた単一引用符が原因で「無効なJSON」エラーをスローします

  15. 15

    任意にネストされたForループのBig-O分析?

  16. 16

    フラスコCLIを使用してアプリを実行すると、「有効なFlaskアプリケーションが...から取得されませんでした」というエラーが表示されるのはなぜですか?

  17. 17

    「実験的なWSL2ベースのエンジンを有効にする」は選択できません

  18. 18

    実験パッケージがインストールされたDebianの不安定で適切なアップグレードポリシー

  19. 19

    これは、部分的に構築されたオブジェクトへの参照エスケープですか?

  20. 20

    次のプロジェクトには有効なProjectGuidがなく、有効なソリューション(.sln)を使用してビルドされていないため、分析からスキップされます

  21. 21

    HttpClient = INVALID URI-エスケープされた絶対パスが無効です

  22. 22

    既存のアップロードされたアプリケーションでプッシュ通知を有効にする

  23. 23

    JsonObjectで生成されたエスケープ文字(gson)にJsonArrayを追加する

  24. 24

    エスケープされたouterHTMLを変数に入れる

  25. 25

    無効にされたスケジュールされたエージェントが、示されたサーバーで何らかの理由で実行されました

  26. 26

    エスケープシーケンスなしでfileInfoとともに保存された適切なjsonをどのように取り戻すのですか?

  27. 27

    RStudioのvim編集モードでctrl-cエスケープを有効にするにはどうすればよいですか?

  28. 28

    モバイル向けに設計されたWebページを開発した経験は何ですか?

  29. 29

    ここでミスリルコンポーネントがどのように機能するかは、私が経験した奇妙な経験です

ホットタグ

アーカイブ