問題タブ [heap-profiling]
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.
google-chrome - Chromeのヒーププロファイラーでオブジェクトのタイトルにある黄色の背景は何を意味しますか?
Chrome Developer Tools のヒープ プロファイラーについて頭を悩ませようとしています。スナップショットに到達可能なオブジェクトがいくつか表示されます。背景が黄色のものとそうでないものがあります。どういう意味ですか?違いは何ですか?
この場合、背景自体が黄色であるため (wtf)、色の凡例はまったく役に立ちません。
javascript - d3.js : 正射回転の最適化
正射投影を使用してマップを作成しましたが、回転がスムーズではないため (6 ~ 7 FPS 程度)、パフォーマンスを改善しようとしています。
topojsonファイル(world-100m)で構築した世界地図です。country とやり取りして色付けする必要があるため、countries と同じ数の svg:path が存在します。
ロード後、 d3.timer を使用して自動回転機能を起動しました:
なぜ遅いのかを理解するために、Chrome でプロファイル レコードを作成しました。結果は次のとおりです。
Animation Frame Firedが遅い部分のようですが、それが何であるかはよくわかりません。それを開くと、2 つの GC イベント (ガベージ コレクター ?) がありますが、周りには何もありません... この 90 ミリ秒の間に何が起こっているか分かりますか?
パフォーマンスを改善するためのヒントは大歓迎です:-)
よろしくお願いします!
ちなみにこんな感じです。
memory-leaks - Go(lang):PPROFヒーププロファイルを使用してメモリリークを見つける方法は?
pprof を使用してメモリ リークを検証しようとしています。
次の場所にあるヒーププロファイルの読み方を説明できますか?
http://localhost:6060/debug/pprof/heap?debug=1
また、web
起動後にコマンドを入力go tool pprof http://localhost:6060/debug/pprof/heap
すると、空の .svg ファイルが生成されるのは正常ですか?
どうもありがとう
google-perftools - google-perftools ヒープ プロファイラーのスタック トレースにシンボルを表示する方法
TDD 環境で google-perftools ヒープ プロファイラーを使用しています。最後に、pprof を使用してホット スポットを確認できるヒープ ダンプを取得します。シンボルは表示されますが、スタック内でどのようにリークが発生したかについての情報はほとんどまたはまったく提供されません。実際、私が見ることができる出力には組織がまったくありません。
最大のリークのスタック トレースは実行時に表示されますが、シンボルは表示されません。PPROF_PATH 環境変数を正しく設定していますが、効果がありません。どうすればこれを有効にできますか?
javascript - Chrome 開発ツールを使用した JavaScript プロファイリング
Web ページに対して何らかの操作を行った後にヒープ スナップショットを作成するたびに、サイズが 3 ~ 4 MB 増加します。10 ~ 15 回続けると、ヒープ スナップショットのサイズが 100 MB まで増加します。アプリにメモリ リークがあることを証明できますか?
私が実行する操作は、毎回同じ結果が得られる検索操作です。
javascript - 同一の chrome オブジェクト ID は、ヒープ プロファイラー内の同じオブジェクトを意味しますか?
Web アプリケーションの 1 つでメモリの問題に取り組んでいます。Chrome のヒープ プロファイラーを使用しています。この情報に基づいて仮定を行っているため、何かを非常に明確に理解していることを確認したいと思います。
上記@
のヒープ プロファイルのスクリーンショットのシンボル。明確に理解していることを確認したい: 等しいオブジェクト ID は同じオブジェクトを意味する
a.objectId == b.objectId implies a same as b
a.objectId == b.objectId implies NOT a same as b
したがって、実際には同じものであると予想していた 2 つのオブジェクトがあり、それらのオブジェクト ID が異なる場合、これは予期しないコピーが発生したことを意味しますか? これは、コード内で不要な重複を作成している可能性がある場所を特定できることを意味しますか?
ドキュメントはこれを言っているように見えますが、それが何を表すかではなく、なぜオブジェクト ID を持っているのかを明確に述べているわけではありません。
これはオブジェクト ID です。オブジェクトはガベージ コレクション中に移動されるため、オブジェクトのアドレスを表示しても意味がありません。これらのオブジェクト ID は実際の ID です。つまり、作成された複数のスナップショット間で保持され、一意です。これにより、ヒープの状態を正確に比較できます。これらの ID を維持すると、GC サイクルにオーバーヘッドが追加されますが、最初のヒープ スナップショットが作成された後にのみ開始されます。ヒープ プロファイルが使用されていない場合、オーバーヘッドは発生しません。
わかりました。しかし、これを私の C プログラマーの頭に戻す必要があります。ネイティブ ヒープを使用しても、ポインターの値は時間の経過とともに変化する可能性があることに気付きました。オブジェクト ID を時間の経過とともに一意のポインター アドレスとして効果的に扱うことはできますか?