問題タブ [hprof]

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 に答える
7260 参照

android - AndroidプロセスにOutOfMemoryErrorでヒープダンプを生成させる方法はありますか?

Sun JVMは-XX:+HeapDumpOnOutOfMemoryError、Javaプロセスがヒープを使い果たしたときにヒープをダンプするオプションをサポートしています。

OutOfMemoryExceptionでAndroidアプリのダンプヒープを作成するAndroidの同様のオプションはありますか?DDMSを手動で使用する場合、適切なタイミングをとることが難しい場合があります。

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

java - OOMの原因となるスレッドのスタックトレース

ヒープスペース用にOutOfMemoryErrorを取得しているJavaアプリケーションがあります。-XX:HeapDumpOnOutOfMemoryErrorを有効にして、結果のhprofファイルを作成しました。

ただし、ダンプは、ヒープ、permgenなどに十分なスペースが残っていることを示しています。これは、大量のメモリ(1 GBアレイなど)に対する単一の要求の原因である可能性があり、失敗して失敗する可能性があります。 tはダンプに表示されます。

基本的には、OOMがスローされた時点でOOMを引き起こしたスレッドのスタックを確認したいと思います。

それはhprofダンプから可能ですか?

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

scala - sbt 0.10 から hprof で実行するタスクを定義する方法

フォークされた JVM で hprof を使用して実行する "run" および "test:run" タスクを定義するにはどうすればよいですか。

build.sbt で

この設定により、両方の実行タスクが hprof で機能します。

デフォルトの "run" および "test:run" タスクを維持するために hprof タスクを定義し、sbt プロンプトから使用したいと考えています。

このようなタスクを定義するにはどうすればよいですか?

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

clojure - これらの Clojure Hprof トレースを理解するのを手伝ってください

数値データをシミュレートしてから処理する Clojure コードがいくつかあります。データは基本的に double 値のベクトルです。処理には、主にさまざまな方法で値を合計することが含まれます。以下にいくつかのコードを含めますが、私の質問は (私が思うに) より一般的なものです。hprof の結果を解釈する方法がわかりません。

とにかく、私のテストコードは次のとおりです。

どこspin-voxelsよりも高価であるべきですspin-signals(特に複数回繰り返される場合)。低レベルのルーチンを提供することはできますが、この質問は、トレースの基本を理解していないことに関するものだと思います (以下)。

これを lein でコンパイルして、簡単なプロファイリングを行うと、次のようになります。

プロファイル トレースは次のようになります。

これはかなりクールです。ここまで、幸せです。数値の一般的な処理で時間を無駄にしていることがわかります。

だから私は自分のコードを見て、最初のステップとして、次のものに置き換えることにvecしましたd-vec:

これで十分かどうかはわかりませんが、さまざまな場所にいくつかの型注釈を追加する必要もあると思いますが、良いスタートのようです。だから私は再びコンパイルしてプロファイリングします:

Ewww。そのため、大幅に遅くなります。そしてプロフィール?

これは私が理解できない部分であるため、ここにさらに行を含めました。

何でこんなに頻繁Vec.count登場するの?ベクターの大きさを返すメソッドです。属性の単一行ルックアップ。

私はまだ Double と double の間を行ったり来たりしているため、速度が遅いと思います。さらに型注釈を追加すると、状況が再び改善される可能性があります。しかし、私は今自分が何を持っているかを理解していないので、前に大失敗することがあまり意味があるかどうかはわかりません.

上記のダンプを一般的な用語で説明できる人はいますか? 私は繰り返し呼び出しをしないことを約束しますcount- 代わりに、たくさんの map と reduce といくつかの明示的なループがあります。

おそらくJITに混乱しているのではないかと思いましたか?関数がインライン化されているため、情報の山が不足している可能性がありますか? ああ、私は 1.3.0-beta1 を使用しています。これは、より賢明な数値処理が行われているように見えるためです。

[更新] http://www.acooke.org/cute/Optimising1.htmlで自分の経験をまとめました- これを理解していないにもかかわらず、5 倍のスピードアップが得られました (実際には、さらにクリーニングして 1.3 に移行すると 10 倍になりました)。

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

android - 私にエラーを与えるAndroidhprov-dump:1.0.3を期待しています

eclipsesDDMSでDumpHPROFFileオプションを使用し、hprofファイルをin.hprofと呼びましたがhprov-conf in.hprof out.hprof、コマンドラインから実行しようとすると、「エラー:1.0.3が必要です」というエラーが表示されます。何か案は?

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

scala - hprof を使用したループの scala のプロファイリング

巷では、scala の for ループは while ループよりも遅いということです。

遅い:

速い:

hprof を使用して for ループがコードのボトルネックかどうかを判断するにはどうすればよいですか? を使用してコードをプロファイリングしています-agentlib:hprof=cpu=samplesが、「CPU サンプル」セクションのメソッドは何ですか?

最適化の取り組みをどこに集中すべきか知りたいです。for ループがボトルネックですか?

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

java - Java HPROF プロファイラーをオンザフライでプログラム的に開始する

特定のランタイム条件が満たされたときに、Java アプリケーションを選択的に監視/プロファイルしようとしています。HotSpotDiagnosticMXBeanを使用して、オンザフライでヒープをダンプできます。これは非常に便利です。

私は現在、特定のコード パスをより効果的に対象とすることを期待して、CPU プロファイリングで同様のことをしようとしています。コマンドラインHPROF インターフェースと NetBeans プロファイラーの経験はありますが、どちらも事前に開始する必要があります。

実行中のアプリケーション内からプログラムで HPROF プロファイラーをアクティブにする方法はありますか? できれば、プロファイリングプロセスを自由に開始および停止できるようにするものはありますか?

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

java - hprofプロファイラーの出力には、`lineno`の値に関係なく行番号は含まれません

私は走っています

出力には、行番号のないスタックフレームが表示されます

に変更lineno=ylineno=nても、まだ取得しUnknown lineます。

クラスをでコンパイルしました-g。私javacのように見えます

.classファイルをチェックして、行番号が設定されていることを確認しました。

のようなものをたくさん示しています

行番号の出力を妨げるフラグの組み合わせを使用していますか?

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

android - Android: ddms の「hprof ダンプ」を押しても、Memory Analyzer Eclipse プラグイン (1.1) が自動的に起動しない

以前のバージョン 1.0 は正常に動作していました。ただし、1.1 にアップデートすると、hprof ファイルを保存するオプションが表示されます。そのファイルをEclipseで開くにはどうすればよいですか?

Eclipse のバージョンは Helios 3.6.2 です。

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

java - ヒープ ダンプ ファイルを解析しています

明らかにオブジェクトが多すぎるアプリケーションを使用しています。次のメッセージが表示されます。

java.lang.OutOfMemoryError: Java ヒープ スペース ヒープを java_pid2468.hprof にダンプしています ... ヒープ ダンプ ファイルが作成されました [18.711 秒で 1087703293 バイト] スレッド「メイン」で例外 java.lang.OutOfMemoryError: Java ヒープ スペース

しかし、MAT にプラグインをインストールしたので、構築したオブジェクトの数と、どのオブジェクトが最も多くのメモリを占有しているかを確認したいと考えました。ただし、hprof ファイルを解析しようとすると、次のエラー メッセージが表示されます。

内部エラーが発生しました:「'C:\Users\sekulicd\workspace\Csv_validation_MyIsam\java_pid2468.hprof' からのヒープ ダンプの解析中」。Java ヒープ領域

hprof ファイルのサイズは 1,087,703,293 バイトです。次の質問に対する回答が必要です。

  1. hprof ファイルのサイズが原因で解析に失敗しましたか?
  2. エラー「 java.lang.OutOfMemoryError: Java heap space 」が発生しないプロジェクトに対してのみ hprof ファイルを解析できますか?
  3. このファイル (1,087,703,293 バイト) を解析する方法はありますか?