問題タブ [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.
c - dbx のメモリ位置にブレークポイントを設定するにはどうすればよいですか?
同僚の C プログラムが、破損したメモリのために予測可能な方法で失敗します。dbx
彼は、破損の原因となっているコードを特定するために、割り当てられたメモリの場所を監視するために使用したいと考えています。
これは可能ですか?もしそうなら、破損の瞬間にブレークポイントを生成する構文は何ですか?
そうでない場合、この種の問題を修正するための良いアプローチは何でしょうか?
(私の通常の戦術は、ソース管理を調べて、最近変更したものを確認することです。これは通常、それが原因であるためです。しかし、問題のコードは、運によってのみ機能したかのように聞こえるため、機能しません。また、 、コードを使用したことがないため、私はすでに犯人として自分自身を排除しました.;-)
c++ - C++ で不明なオブジェクトの型を見つける
プログラムのメモリ リークをチェックする方法は多数あります。リークしたメモリ ブロックへのポインターのリストが表示されますが、各ブロックの詳細情報を見つける良い方法はありますか? 例: オブジェクトが文字列であることがわかっている場合、実際の文字列値により、リークを簡単に見つけることができます。
それを可能にする RTTI へのバックドアはありますか?
解決すべき問題は、ポインターを取得するまでにランタイム システムが既にシャットダウン状態にあり、オブジェクトへのポインターではなく生のメモリ ブロック ポインターを取得することです (ただし、多くの場合は同じである可能性があります)。
c++ - I think STL is causing my application triple its memory usage
I am inputting a 200mb file in my application and due to a very strange reason the memory usage of my application is more than 600mb. I have tried vector and deque, as well as std::string and char * with no avail. I need the memory usage of my application to be almost the same as the file I am reading, any suggestions would be extremely helpful. Is there a bug that causes so much memory consumption? Could you pinpoint the problem or should I rewrite the whole thing?
Windows Vista SP1 x64, Microsoft Visual Studio 2008 SP1, 32Bit Release Version, Intel CPU
The whole application until now:
objective-c - ガベージ コレクションを使用すると、新しく作成された Cocoa アプリでメモリ リークが発生しますか?
私は、最新の Cocoa プロジェクトのメモリ管理に GC を使用することにしました。そして、興味深いことを発見しました。Xcode でまったく新しい Cocoa アプリ プロジェクトを作成する場合、GC をサポート対象または必須に変更し (両方を試しました)、ビルドして実行します。リークすると、メモリ リークが表示されます。
ほとんどの場合、NSCFData、GeneralBlock、CGEvent、CFDictionary、CGSRegion などのタイプのオブジェクトの多数の小さなリーク。
再現する手順:
- ファイル -> 新しいプロジェクト -> Cocoa アプリ
- プロジェクト -> プロジェクト設定の編集 -> GC 必須 (またはサポートされている、いずれか)
- ビルド -> ビルド
- 実行 -> パフォーマンス ツールで実行 -> リーク
- リーク検出がトリガーされるのを待ちます (私は 10 秒に設定しています。デフォルトは 30 秒です)。
約 80% の確率で、上記の種類のさまざまなオブジェクトの約 2 ~ 20 KB のリークが発生します。
他の誰かがこれと同じ行動をしていますか?
編集: InputManagers フォルダーの名前を変更して以下の状況をテストしました (その時点でログ メッセージは消えたため、ログ メッセージは確実に読み込まれなくなりました)、まだメモリ リークが発生しています。したがって、それと関係がある可能性は低いと思われます。私はそこにテキストを残しているので、アシュリー・クラークの答えはまだ理にかなっています.
私が知っている唯一の奇妙な状況は、GC を有効にしてアプリを実行するたびに、コンソールに次のメッセージが表示されることです。
これは、Safari (プラグイン用) だけでなく、起動するすべてのプログラムにロードしようとする 2 つのプラグインと関係があると思います。それがこれと関係があるかどうかはわかりませんが、間違いなく可能性があるようです。OS X 10.5 の代わりに開発ツールを使用して、SAFT や Inquisitor を使用せずに未使用のインストールで同じことが起こるかどうかをテストするためのクリーンな環境に簡単にアクセスできません。
c++ - Windows/C++ アプリケーションで割り当てを解除してもメモリが解放されない
私の Windows/C++ アプリケーションは、オペレーターを使用してメモリ内に最大 1Gb のデータを割り当て、new
このデータを処理します。処理後、データは削除されます。
new
アプリケーションを終了せずに処理を再度実行すると、オペレーターへの 2 回目の呼び出しで ~1Gb のデータを割り当てることが失敗することに気付きました。
私は、Windows がメモリを返却することを期待しています。これは、他の Win32 呼び出しなどでより適切に管理できますか?
c++ - WinCE C / C +ランタイムライブラリでリークを検出するにはどうすればよいですか?
crtdbg.hヘッダーを使用したWin32の基本的なリーク検出の可能性は知っていますが、このヘッダーはCE CRTライブラリヘッダーでは使用できません(最新のSDK v6.1を使用しています)。
VC9.0を使用したWinCE/ARMV4I構成でリークを自動的に検出する方法を知っている人はいますか?クラス階層の新規/削除をオーバーライドしたくないので、すぐに使用してテスト済みのコードを使用したいと思います。
c++ - c++でメモリリークをチェックする最良の方法は何ですか?
リンクされたリストを使用して疎行列を実装していますが、リークを手動でチェックするのは楽しくありません。何か考えはありますか?
c++ - 新しく割り当てられたデータを関数に直接渡す
さまざまな言語を学習しているときに、オブジェクトがその場で割り当てられるのをよく見かけます。ほとんどの場合、次のようにJavaとC#で割り当てられます。
これはメモリ管理言語では完全に合法であることを理解していますが、この手法をC ++で使用しても、メモリリークは発生しませんか?
.net - 循環参照はメモリリークを引き起こしますか?
Windowsフォームアプリケーションでメモリリークを実行しようとしています。私は今、いくつかの埋め込まれたフォームを含むフォームを見ています。私が心配しているのは、子フォームがコンストラクターで親フォームへの参照を取得し、それをプライベートメンバーフィールドに保持することです。ですから、ガベージコレクションの時期が来ると私には思えます。
親は、controlsコレクションを介して子フォームへの参照を持っています(子フォームはそこに埋め込まれています)。子フォームはGCされません。
子フォームには、プライベートメンバーフィールドを介した親フォームへの参照があります。親フォームはGCされません。
これは、ガベージコレクターが状況を評価する方法を正確に理解していますか?テスト目的でそれを「証明」する方法はありますか?
c# - 配列の重複の回避
[MSDN: 配列の使用に関するガイドライン]( http://msdn.microsoft.com/en-us/library/k2604h5s(VS.71).aspx)によると:
配列値プロパティ
コードの非効率性を回避するには、コレクションを使用する必要があります。次のコード例では、myObj プロパティを呼び出すたびに配列のコピーが作成されます。その結果、配列の 2n+1 個のコピーが次のループで作成されます。
myObj[] から ICollection myObj への変更以外に、他に何をお勧めしますか? 私の現在のアプリがメモリをリークしていることに気付きました:(
ありがとう;
EDIT:C#にref(安全性は別として)で参照を渡すように強制すると、パフォーマンスやメモリ使用量が改善されますか?