仕事で、以下の言語で記述したアプリケーションがメモリリークしていないかどうか確認するように言われました。
Java
JavaScript
C++(MFC)
テスト環境は、開発ツールが一切はいっておらず実行環境しかない状態です。
リークを調べるための専用のツールなどが存在するのでしょうか?
また、リークを調べるためには何日ぐらい運用しておく必要があるのでしょうか?
漠然とした質問で申し訳ありませんが、ご回答よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
JavaScriptのメモリーリークはChromeの「その他のツール>デベロッパーツール」から「Profile」タブの「Record Heap Allocation」で検証できますよ。
HTML5限定ですが、IE11やEdgeのF12開発者ツールでも同様の検証が可能です。
ご参考まで。
投稿2015/12/01 11:17
総合スコア2425
0
ベストアンサー
リークを調べるための専用のツールなどが存在するのでしょうか?
「パフォーマンスモニター」が標準で付いています。コントロールパネルの「管理ツール」の中にあります。メモリの使用状況だけでなく様々な情報を監視できます。
「メモリリーク パフォーマンスモニター」で検索するといろいろ出てきますので、参考にしてみてください。
また、リークを調べるためには何日ぐらい運用しておく必要があるのでしょうか?
これはチェック対象のアプリがどのような運用を想定しているのかにもよりますね。コンシューマー向けのアプリなら1日くらいで十分かもしれませんし、24時間稼働を想定したサーバーアプリであればそれなりの日数をかける必要があるかもしれません。
その手のテストに関する社内規定はないのでしょうか?
投稿2015/12/01 05:11
総合スコア5938
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
Javaですが、かなり限定された環境になりますが、Oracle JRockit JVMはJRockitフライト・レコーダというJVMの中で動くプログラムを細かくモニタリングする機能が提供されていて役に立ちました。
Sun JavaのJVMでは、このような機能が提供されていないので、「-verbose:gc」オプションを付けてヒープの使用量とガベージコレクションの動作をログに出力させて、その状態をモニタリングしました。ただ、この場合はメモリリーク(Chironianがいうように、参照が残っているためガベージの対象とならないオブジェクトの発生)が起きているかどうかくらいしか、判定はできません。
投稿2015/12/01 05:23
総合スコア924
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/01 06:02 編集
2015/12/01 06:02
2015/12/03 09:08
0
こんにちは。
VC++の場合は標準でメモリリーク検出機能が搭載されてます。
→ライブラリとしての実装ですので、Visual Studioがインストールされていない環境でも機能する筈です。
レポート先をファイルにすればDebugView等のデバッグ出力を観察するツールも不要と思います。
JavaやJavaScriptは原則としてメリモリークしないと理解してます。
ただし、使わなくなったインスタンスへの参照を残したままにすると事実上リークになるので安心はできないと聞きます。
これを検出する方法については、ごめんなさい、私は把握してないです。
投稿2015/12/01 05:03
編集2015/12/01 05:10総合スコア23272
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/03 09:06