問題タブ [memory-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.
python - Find out how much memory is being used by an object in Python
How would you go about finding out how much memory is being used by an object? I know it is possible to find out how much is used by a block of code, but not by an instantiated object (anytime during its life), which is what I want.
.net - .NET メモリ プロファイリング ツール
重複の可能性:
優れた .NET プロファイラーとは?
優れた .NET CLR メモリ プロファイリング ツールを探しています。
私の主な要件は、IIS およびスタンドアロンの CLR アプリとうまく連携することです。理想的には、どのオブジェクトが割り当てられているか、どこに割り当てられているか、およびそれらのサイズを確認できますか?
特定のツールを使った経験があり、喜んでお勧めできる人はいますか?
.net - 重要なアンマネージ コードを呼び出す .NET アプリケーションでメモリ使用量が多いことを検出して分離するには、どのようなツールと手法を使用できますか?
C# で記述された WinForms .NET アプリケーションがあるとします。このアプリケーションは、マネージ ヒープとアンマネージ ヒープの両方から大量のメモリを割り当てます。Red Gate ANTS Profiler (私は使用していません) やJetBrains dotTraceなどのツールを使用して、管理対象オブジェクトの割り当ての詳細 (誰が、いつ、どれだけなど) を (比較的) 簡単に把握できます。
問題が発生するのは、マネージ オブジェクトが重要なネイティブ リソース (イメージや大きな COM オブジェクトなど) を使用する場合、または大量のメモリを必要とするアンマネージ サード パーティ ライブラリを呼び出す場合です。これまでのところ、1) メモリを大量に消費しているのはマネージ コードかアンマネージ コードか、および 2) アンマネージ ヒープを大量に使用しているのは誰かを突き止めるために、調査作業を行う必要があります。
現時点で私が持っている唯一の手法は、マネージド ヒープとアンマネージド ヒープのサイズ、割り当てなどを比較するパフォーマンス カウンターを perfmon に設定することです。ネイティブ リソースを消費するアンマネージ ライブラリや .NET オブジェクト。
大量のマネージコードとアンマネージ コードを扱う開発者を支援するツールと手法の最適な組み合わせは何ですか?
更新:より明確にするために、マネージ コードから呼び出されるアンマネージ コードでメモリの問題 (高使用率、リーク) を検出する方法を知りたいです。dotTrace のような製品は、管理対象オブジェクトのみを追跡すると思います。
ruby - GC Patched ruby に gem をインストールする正しい方法は何ですか?
GC Patched Ruby をインストールして、アプリでメモリ プロファイリングを実行したいと考えています。http://guides.rubyonrails.org/performance_testing.html#gcの指示に従い、ホーム ディレクトリに Ruby インスタンスをインストールしました (開発用の別の「公式」インスタンスが既にあります)。この GC Patched ruby インスタンスは正常に動作しています。
問題は、上記のガイドのステップ 1.8.6 で指示されているように、このインスタンスに gem をインストールする必要がある場合です。他の ruby インスタンスを指しているため、自分のマシンに既にインストールされている rubygems を使用できません。また、gc パッチを適用したルビーだけに別の rubygems のインスタンスをインストールすることもできませんでした。
そのため、パッチが適用されていない別のルビーが既にインストールされているマシンで、GC にパッチが適用されたルビーに rubygems をインストールする正しい方法を知りたいのです。
memory - VADumpを使用したメモリ使用量の追跡-OpenProcessFailedc0000034
MSDNマガジンの最新号の記事を読んだ後、VADumpを使用して、作成したいくつかのアプリケーションのメモリ使用量を分析してみたかったのです。
私のPC上の実行可能ファイルの唯一のコピーは次の場所にあります。
c:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin\winnt\vadump.exe
VADumpに与える引数の組み合わせに関係なく、エラーが返されます。
OpenProcess Failed c0000034
これをグーグルで検索すると、同じ問題を抱えている他の数人が見つかりますが、これらの投稿のいずれにも、私が見つけることができる解決策(または返信さえありません!)がありませんでした。
このマシンは、VS2005およびVS2008がインストールされたWinXPSP2を実行しています。
VADumpは非常に便利なツールのように見えますが、実際に試してみたいと思います。うまくいけば、これはオフィス内の別のPCで機能しますが、それでも私はそれを私のもので機能させたいと思っています。
何か案は?
c++ - マルチプラットフォームのメモリリーク検出プログラムを探しています
わかりました、基本的に 3 つのメモリ リーク検出プログラムを選択し、教師が提供する一連の C++ プログラムでそれらを実行し、それらが互いにどのように比較されるかを確認するという学校の課題があります。これら 3 つのプログラムはマルチプラットフォームである必要があり、ここで行き詰まっています。MAC OSX と Linux の両方で動作する valgrind という名前のものしか見つけられませんでした。誰か他のいくつかを知っていますか?私が見つけたほとんどすべての OS は 1 つのみのものであるか、そのためにお金を払わなければなりません。各 OS で実際に実行する必要はありません。別の OS で実行されるバージョンが必要なだけです。どんな助けでも大歓迎です。
編集:私は自分の割り当てを完全に誤解しており、Linuxの場合は1、Windowsの場合は2と言うだけでよいことがわかりました。基本的に、1 つの OS に対して 3 つすべてを使用することはできません。これにより、物事が非常に簡単になります。
.net - メモリ不足をシミュレートして、.NET アプリケーションの小さなソース データセットでメモリ リークを突き止めることはできますか?
私は、非常に (非常に) 大規模なデータセットでメモリ不足エラーを予測どおりに生成するアプリケーションを使用しています。アプリのメモリ管理を最適化することで問題を解決しようとしていますが、問題の非常に大規模なデータセットには非常に長い時間が必要です。テストサイクルを反復して問題を経験的に見つけるのが難しいことを (日) 実行する必要があります。
アプリケーションのパフォーマンスの問題はしばらく脇に置いておきます。これは、正しいアプリケーションの動作の次のタスク リストです。
非常に大きなデータセットでのみ自然に発生する OutOfMemory エラーを、代わりに小さなデータセットで強制的に発生させるために、Visual Studio でデバッグ モードで実行しているときにアプリケーションが使用できるメモリの量を制限する簡単な方法はありますか?
c# - DLLのプロファイリングを可能にする.NETパフォーマンスおよび/またはメモリプロファイラーはどれですか?
私は他のプログラム用に多くの.NETベースのプラグインを作成しています。これらのプラグインは通常、起動するネイティブアプリケーションに依存するDLLとしてコンパイルされます。私はEquatecのプロファイラーを使用してきましたが、これはうまく機能しますが、メモリ使用量をプロファイリングする機能など、より多くの機能を備えたものが必要です。
RedGateのAntProfilerを試しましたが、私が見る限り、DLLをプロファイリングする方法はありません。唯一のオプションは、EXEのプロファイルを作成することです。
したがって、私の質問は、EXEではなく単一のライブラリDLLをプロファイリングできる他のプロファイリングツールが利用できるかどうかです。Equatecのように、プロファイルコードをライブラリに挿入する必要があると思いますか?
c# - TimerCallback.PerformTimerCallbackメモリ割り当て
WCFサービスがあり、そのメモリ割り当てをプロファイリングしています。各リクエストに割り当てられたメモリの36%
は、TimerCallBack.PerformTimerCallback
を介して割り当てられ、次に次を呼び出します
。ExecutionContext.CreateCopy ExecutionContext.Run
これら
の割り当てはすべて、私のコードを経由せず、次のような汎用オブジェクトのみを割り当てます。 Hahtable.bucketおよびExecutionContextRunData。
私のサービスでは、アプリケーションの理由でタイマーを使用しています。ブール値を更新する単純なコールバックを使用して、リクエストごとにタイマーを作成し、すぐに破棄します。それは関連しているのでしょうか?
関連する割り当てグラフは次のとおりです。
これらすべての割り当てはどこから来るのですか?これは正常ですか?
それのいくつかを下げる方法はありますか?
memory-management - メモリ プロファイラ ソフトウェア - 使用方法 例?
プログラムのメモリ リークをチェックしたい場合、どのような方法を使用すればよいですか? どのようなソフトウェアが利用可能で、そのソフトウェアをどのように使用しますか? ここにあるコードでメモリリークが発生しているかどうかを確認したいのですが、それを確認する方法がよくわかりません。
ありがとう!