問題タブ [java-memory-leaks]

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 投票する
1 に答える
179 参照

memory-leaks - JavaFX-3D を使用してアニメーションを作成するとメモリ リークが発生する

ファイルからデータを読み取り、シーンにレンダリングする JavaFX(8) 3D アプリケーションを作成しました。

オブジェクトのレンダリングには、次を使用します。

レンダリングを無効にするためにこの行をコメント アウトすると、メモリ リークはまったく発生しません。

しかし、この行が実行されると、アプリケーションはますます多くのメモリを消費します。私は毎秒30フレームで、毎秒メモリ消費量が約50MB増加しています。

これはもちろん、私が使用するフレーム間ではありますが:

ローカルに割り当てた 3D オブジェクトはgraphicsContainer、静的/グローバル スコープには保存されません。これらは の子としてのみ保存graphicsContainerされ、すべてのフレームで消去されます。

の子を削除するたびに、JavaFX-3D エンジンの何かが私の作業を実際にクリアしていないようgraphicsContainerです。

JavaFX 3D エンジンに過去の 3D オブジェクトとレンダリングを解放させる方法はありますか?

0 投票する
1 に答える
2878 参照

java-8 - メモリ不足: Java 8 のメタスペース

私の製品には 256 MB の RAM が搭載されています。Java 6 を Java 8 にアップグレードしました。その後、Java 8 でメモリ関連の問題に直面し始めました。Java 8 を使用すると、メモリ消費量が増加します。同じコードを使用すると、Java 6 でメモリ消費量が安定します。メタスペース、java8 に関して多くを調査しました。メタスペースパラメーターの下にあります。

以下の組み合わせを試してみましたが、メモリ不足エラーが発生しました

1.MaxMetaspaceSize 50M MaxMetaspaceFreeRatio 60M MinMetaspaceFreeRatio 50M

2.MaxMetaspaceSize 30M

3.MaxMetaspaceSize 40M

4.MaxMetaspaceSize 50M

5.MaxMetaspaceSize 80M

しかし、2 ~ 3 時間後、メモリ不足のメタスペース エラーが発生しました。

誰かがメタスペース オプション MaxMetaspaceSize、MaxMetaspaceFreeRatio、MinMetaspaceFreeRatio とは何かを説明できますか?

適切なサイズはどうやって決めるのですか?本番環境でメモリ不足のインスタンスを回避し、メモリ消費を削減するためのこれらの値の正しい組み合わせは何ですか?

0 投票する
1 に答える
302 参照

groovy - GroovyCategorySupport と「システム」メモリ リーク

次の JUnit テストを実行すると、Java プロセスのメモリが常に増加しています。数時間後、2合以上使用。しかし、jvisualvm を見ると、ヒープと permgen のサイズは安定しており、リークは見られません。テストはで実行されます-Xmx32m

Groovy 2.4.7、Windows および JRE1.7_80、MacOS および JRE1.7_60 でテストしました。MacOS と JRE 1.8.0_91 でこのバグを再現できません

JRE1.7 のバグに関連していると思われます。この問題を軽減する方法を探しています。

  • 私のテストは多分間違っていますか?ヒープスペースまたは permgen スペースをリークせずに「システム」メモリをリークするにはどうすればよいですか?
  • Groovy と JRE 1.7 の間の「既知の」バグまたは非互換性ですか?
  • 1.7 jre で groovy カテゴリを使用し、このメモリ リークに苦しむ方法はありませんか?

編集

を呼び出すことでこのバグを再現できますVMPluginFactory.getPlugin().invalidateCallSites()。これは、この「純粋な Java」単体テストで変換されます。

実際、それだけnew SwitchPoint()で十分です。

0 投票する
0 に答える
148 参照

android - Google 検索ウィジェットは、サイド システム サーバーでメモリ リークを起こします。プラットフォーム側からのこのメモリ リークを解決する方法 (フレームワーク側から)

ホーム画面で Google 検索ウィジェットを使用すると、システム サーバー内でメモリ リークが発生することがわかりました。Google ウィジェットは、ホーム ボタンをクリックするたびに更新され、クラスcom.android.server.appwidget.AppWidgetServiceImplの複数の参照を保持しています。

メモリ分析ツールからの以下の分析レポートを確認してください。

「 dalvik.system.PathClassLoader @ 0x12c1d220 」によってロードされる「com.android.server.appwidget.AppWidgetServiceImpl 」の 1 つのインスタンスは、47,168,416 ( 65.38% ) バイトを占有します。メモリは、「 dalvik.system.PathClassLoader @ 0x12c1d220 」によってロードされた「com.android.server.appwidget.AppWidgetServiceImpl 」の 1 つのインスタンスに蓄積されます。

ヒープ ダンプ分析 MAT のスクリーン ショット

問題を再現する手順:

  1. 工場出荷時のデータリセットを行います。
  2. Google ログイン アカウントで setupwizard を完了します。
  3. インターネット接続を切断しないでください。
  4. 最近のタブからすべてのアプリを消去します。
  5. HOMEキーを押す >> 1秒待つ >> 最近のアプリキーを押す >> 1秒待つ >> HOMEキーを押す 1秒待つ
  6. 手順 5 を複数回 (100 回) 繰り返し、次のコマンドでシステム サーバーのヒープ メモリを観察します。

adb shell dumpsys meminfo

「Dalvik Heap」から「Heap Size」と「Heap Alloc」列の増加を観察しました

前後のヒープサイズの下を見つけます。

system_server メモリ情報の詳細

Google 検索アプリを無効にすると、システム サーバーのメモリ リークは観察されませんでした。

私はメモリリークの問題のデバッグが初めてです。サイドシステムサーバーでヒープサイズを食べているのは誰で、その理由は?

ありがとう