質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MFC

MFC (Microsoft Fouondation Class)とは、MicrosoftがVC++用に開発したWindows用アプリケーションのフレームワークです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

メモリリーク

メモリリークは、プログラムファイルがメモリの解放に失敗した時に起こります。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

4回答

9919閲覧

メモリリークの調査方法について

oshigotoDacho

総合スコア53

MFC

MFC (Microsoft Fouondation Class)とは、MicrosoftがVC++用に開発したWindows用アプリケーションのフレームワークです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

メモリリーク

メモリリークは、プログラムファイルがメモリの解放に失敗した時に起こります。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

4クリップ

投稿2015/12/01 04:37

仕事で、以下の言語で記述したアプリケーションがメモリリークしていないかどうか確認するように言われました。

Java
JavaScript
C++(MFC)

テスト環境は、開発ツールが一切はいっておらず実行環境しかない状態です。

リークを調べるための専用のツールなどが存在するのでしょうか?
また、リークを調べるためには何日ぐらい運用しておく必要があるのでしょうか?

漠然とした質問で申し訳ありませんが、ご回答よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

JavaScriptのメモリーリークはChromeの「その他のツール>デベロッパーツール」から「Profile」タブの「Record Heap Allocation」で検証できますよ。
HTML5限定ですが、IE11やEdgeのF12開発者ツールでも同様の検証が可能です。
ご参考まで。

投稿2015/12/01 11:17

tkanda

総合スコア2425

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oshigotoDacho

2015/12/03 09:06

ご回答ありがとうございます。 ブラウザにそういった機能があったのですね。 JavaScriptに関してはChromeで行おうとおもいます。
guest

0

ベストアンサー

リークを調べるための専用のツールなどが存在するのでしょうか?

「パフォーマンスモニター」が標準で付いています。コントロールパネルの「管理ツール」の中にあります。メモリの使用状況だけでなく様々な情報を監視できます。
「メモリリーク パフォーマンスモニター」で検索するといろいろ出てきますので、参考にしてみてください。

また、リークを調べるためには何日ぐらい運用しておく必要があるのでしょうか?

これはチェック対象のアプリがどのような運用を想定しているのかにもよりますね。コンシューマー向けのアプリなら1日くらいで十分かもしれませんし、24時間稼働を想定したサーバーアプリであればそれなりの日数をかける必要があるかもしれません。
その手のテストに関する社内規定はないのでしょうか?

投稿2015/12/01 05:11

catsforepaw

総合スコア5938

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oshigotoDacho

2015/12/03 09:09

ご回答ありがとうございます。 Windows標準でこのような便利なものがあったとは知りませんでした。 早速使ってみます。 社内に規定はないようです。 24時間駆動ではないのでそこまで時間はかけなくて大丈夫かもしれません。
guest

0

Javaですが、かなり限定された環境になりますが、Oracle JRockit JVMはJRockitフライト・レコーダというJVMの中で動くプログラムを細かくモニタリングする機能が提供されていて役に立ちました。
Sun JavaのJVMでは、このような機能が提供されていないので、「-verbose:gc」オプションを付けてヒープの使用量とガベージコレクションの動作をログに出力させて、その状態をモニタリングしました。ただ、この場合はメモリリーク(Chironianがいうように、参照が残っているためガベージの対象とならないオブジェクトの発生)が起きているかどうかくらいしか、判定はできません。

投稿2015/12/01 05:23

KatsumiTanaka

総合スコア924

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KatsumiTanaka

2015/12/01 06:02

eripong さん、情報ありがとうございます。 自分がこの件で作業していたのが2011年のことだったので、だいぶ進歩したんですね
oshigotoDacho

2015/12/03 09:08

ご回答ありがとうございます。 ちょっとむずかしいそうなツールですね。 使い方を調べてみようと思います。
guest

0

こんにちは。

VC++の場合は標準でメモリリーク検出機能が搭載されてます。
→ライブラリとしての実装ですので、Visual Studioがインストールされていない環境でも機能する筈です。
レポート先をファイルにすればDebugView等のデバッグ出力を観察するツールも不要と思います。

JavaやJavaScriptは原則としてメリモリークしないと理解してます。
ただし、使わなくなったインスタンスへの参照を残したままにすると事実上リークになるので安心はできないと聞きます。
これを検出する方法については、ごめんなさい、私は把握してないです。

投稿2015/12/01 05:03

編集2015/12/01 05:10
Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oshigotoDacho

2015/12/03 09:10

ご回答ありがとうございます。 VC++のほうは殆ど触ったことがないのでよくわからない状況です。 勉強してみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問