私はそれがcrossplatfomの方法を必要とするか、ブーストを使用しているかもしれません。だからあなたのアプリがどれだけのRAMを食べるかに関する情報を得る方法は?あなたのアプリはどれくらいのRAMを食べているのですか?
答えて
Windowsの場合、タスクマネージャを使用します。 Linuxの場合はtop
を使用してください。あなたは、あなたのアプリケーション内で推測しようとするのではなく、OSにあなたのことを伝えるほうがずっと良いです。
または余分な "htop"の場合:http://htop.sourceforge.net/ – Thanatos
Visual Studioを使用しているWindowsでは、CRT Debug Heap機能を使用できます。有用な統計情報を印刷するには_CrtMemDumpStatistics
を使用することができます。 _CrtMemDumpAllObjectsSince
は、チェックポイント間に割り当てられたすべてのオブジェクトをリストします。メモリリーク検出(_CrtDumpMemoryLeaks
)のようなより有用なものがあります。 _CrtMemCheckpoint
でスナップショットを撮り、後で_CrtMemDifference
との違いを比較することもできます。
new
を再定義して、CRTデバッグ機能の詳細情報を取得することもできます。
#ifdef _DEBUG
#define new new(_CLIENT_BLOCK, __FILE__, __LINE__)
#endif
注:は、これはCRTの割り当てを追跡します。プロセスのメモリ情報全体を取得するには、GetProcessMemoryInfo
を使用します。
#define new(_CLIENT_BLOCK、__FILE__、__LINE__) は未定義の動作です。 予約語の再定義は、C++標準によって明示的に禁止されています。 –
@Gene Bushuyev:まあ、これはマイクロソフトの提案です。コード内のすべての 'new'にこれらのパラメータを手動で追加することも可能ですが、それはかなり苦しいでしょう。ルールは時折曲がると思う。これは結局のところデバッグテスト版です。それを解放する必要はありません。 – detunized
移植性がありません。これは、ISOだけでなく、MSDNによって完全に定義されています。しかし、そのマクロとして定義されていることをすべて理解してください。例えば、あなたのクラスで 'operator new'を宣言しようとすると、それは影響を受けます。 – MSalters
* NIXではgetrusage()
、Windowsではを試してください。個人的に
http://www.opengroup.org/onlinepubs/009695399/functions/getrusage.html
http://msdn.microsoft.com/en-us/library/ms683219%28VS.85%29.aspx
私は、メモリリークを検出するための非常に便利な、私のアプリケーションの全体的なパフォーマンスをテストするためにhttp://valgrind.org/を使用したいです! LinuxのTOPコマンドとWindowのタスクマネージャの両方の簡単なランタイム情報を探しているなら、非常に使いやすいです。
- 1. NSZombiesは私のアプリの脳を食べています!
- 2. iPhoneアプリのイントロムービーはどれくらいありますか?
- 3. なぜこのconstexprコードはGCCにすべてのRAMを食べさせますか?
- 4. 私のプログラムがどれくらいの量のメモリを食べているかはどうやって確認できますか?
- 5. なぜ新RelicはTomcatのメモリをたくさん食べているのですか?
- 6. CygwinであなたのGREPはどれくらい速いですか?
- 7. インストールされている他のアプリからFacebookを開くにはどうすればいいのですか?
- 8. どのくらいの物理RAMがimdiskをRAMディスクに割り当てるかを知る方法
- 9. Flash Stage3dではどのくらいのGPU RAMが使用されていますか?
- 10. Androidアプリの最適サイズはどれくらいですか?
- 11. iPadアプリ名の最大長はどれくらいですか?
- 12. mongodbサーバーのセットアップにはどのくらいのRAMとハードディスクが推奨されていますか
- 13. 無料のAndroidアプリの「アクティブなインストール」率はどれくらいですか?
- 14. Reactコンポーネントのキーはどのくらいユニークであるべきですか?
- 15. 64ビットと32ビットのUbuntuと低メモリシステム - なぜUbuntu 64ビットが私のRAMを食べるのですか?
- 16. WatchKitアプリからiPhoneの親アプリを開くにはどうしたらいいですか?
- 17. Linuxでコピーオンライトでフォークされたプロセス間でどのくらいのメモリが共有されているかを調べる方法はありますか?
- 18. iphoneアプリのバッテリー消費量はどのくらいですか?
- 19. AndroidアプリでJSONをどのくらいキャッシュすればよいですか?
- 20. SQL Serverは実際にどのくらいのRAMを使用していますか?
- 21. Androidのコーディング私は日食のAndroidアプリを開発してい
- 22. 私のアプリからリモートURLからアンドロイドのpdfを開くにはどうすればいいですか
- 23. Androidアプリで256Mb以上のRAMを使用するにはどうすればよいですか?
- 24. setIntervalsの数はどれくらい多くありますか?
- 25. シンプルなスパークプログラムはすべてのリソースを食べます
- 26. 日食は、IDを認識していないか、または
- 27. Cassandraクラスタの1ノードあたりのデータ量はどれくらいですか?
- 28. 別のアプリから起動したアプリを閉じるにはどうしたらいいですか?
- 29. あなたのセカンドiOSアプリチュートリアル:どのくらいのセクションが欲しいですか?あなたのセカンドiOSアプリで
- 30. iPhone/Androidアプリのログファイルの最大サイズはどれくらいですか?
他のプロセスの実行状況によって大きく変わる無意味な値です。仮想メモリのサイズだけが何かを言うことができます。 –
「XはどのくらいのRAMを使用しますか」という質問は答えがありません。プロセスはメモリ(DLLなど)を共有したり、メモリをスワップアウトしたり、プロセス内でメモリを割り当てたり、実際にRAMやスワップなどを使用したりすることはできません。 – Thanatos
[実行時のメモリ使用量をC++で取得する方法](http://stackoverflow.com/questions/669438/how-to-get-memory-usage-at-run-time-in-c) –