フリーズとメモリリークについて

このQ&Aのポイント
  • フリーズとメモリリークの対処方法を知りたい
  • アプリケーションログにメモリリークの可能性が示されている
  • Windows7のスペックでメモリ3Gの場合、メモリリークは起こりやすい
回答を見る
  • ベストアンサー

フリーズとメモリリークについて

最近になって頻繁にフリーズするようになりました。 アプリケーションログを見てみるとメモリリークの可能性と言うのがありました。 以下コピペです。 >メモリ リークの可能性があります。アプリケーション (C:\Windows\System32\svchost.exe -k LocalServiceNetworkRestricted) (PID: 1100) が、[allocate(all_nodes)] とマークされた [out] パラメーターの NULL でないポインターを RPC に渡しました。[allocate(all_nodes)] パラメーターは常に再割り当てされるので、元のポインターに有効なメモリのアドレスが含まれていた場合、そのメモリがリークします。呼び出し元はインターフェイス UUID ({3f31c91e-2545-4b7b-9311-9529e8bffef6})、メソッド番号 (20) です。対処方法: アプリケーションの製造元に問い合わせて、アプリケーションの更新バージョンがないか確認してください。 と、書いてあるのですがどうしたらいいのでしょうか。 後、「めもりーくりーなー」という物も常駐させてみたのですがあまり効果はないみたいです… スペックはWindows7、メモリ3Gです。 どうかよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

私も同じ様な状況に陥り、次の方法で対処しました。 当てはまらないかもですが、ご参考までに。 スタートからホームグループに入り、ホームグループを無効化する。

参考URL:
http://social.technet.microsoft.com/Forums/en/w7itproperf/thread/108f02ab-6d88-47f5-97cf-8862e160327d
sinsinsinsou
質問者

お礼

お礼遅くなって申し訳ないです… ありがとうございます!おかげさまで直りました!

その他の回答 (1)

  • kamikami30
  • ベストアンサー率24% (812/3335)
回答No.1

OSがWindows7で Windows7にも色々あります。 http://www.microsoft.com/ja-jp/windows/buy/default.aspx スペックは CPU: メモリ; HDD or SSH: メディアドライブ ビデオカード 電源 マザーボード(チップセットも) という感じです。

関連するQ&A

  • メモリーリークを解決する。

    メモリー不足と出て、動画のレンダリングやDVD作成ができません。色々と調べてみたら、メモリーリークの疑いというものがありました。でも、どうしたらいいのか調べてみても全くわかりません。以下が、これじゃないかと思うものです。 RPC Microsoft-windows-System-RPC-Event イベントID 11 Aprication c:\windows/system32\svhost.exe-K LocalServiceNetworkRestricted Process ID 1200 Interfaceld {3F31C91E-2545-4B7B-9311-9529E8BFFEE6} Method 20 何が何だかまったくわかりません。助けてください。どうか、宜しくお願いします。 ※OKWaveより補足:「ソニー製品」についての質問です。

  • メモリリーク

    メモリリークに関する質問です。 現在稼動しているサーバーについてなのですが、メモリの使用量が実際に搭載しているメモリ量を超えてスワップが発生してしまっています。一日当り数MBのメモリが消費されてしまっているようなのですが、タスクマネージャー上ではそんなに増えているアプリケーションはありません。 プリンタドライバが悪さをしているとの話もあるのですが、調査の仕方がわからず困っています。 まずはこれがメモリリークなのかどうかがよくわからないのですが、調査方法等ご存知の方、知恵を貸してください。よろしくお願いいたします。 【ちなみに環境は】 ・Windows2000Server ・ORACLE9.0.1 ・プリンタ用のパッケージ ・VC++及びVBにて開発 【こんなシステムです】 ・一日に1400枚程度の紙を印字 ・RS232Cを使用して他のコンピュータと通信を  一日に1400回程度行っている  (1回あたり256バイト)

  • VB6.0のメモリリークについて

    こんにちは、当方、VB6.0を使用してアプリケーションを作成していますが、メモリリークが発生して困っています。 以下、プログラムのイメージになります。 ファイルを常時監視するメソッド(chkfile)の無限ループ内で、ファイルを取得するメソッド(getfile)を使用して、 ファイルを取得→変換する処理を行っています。 ファイルの取得方法は2パターンあり、1つ目は、任意の間隔(分単位)で機器と通信して取得する方法、 2つ目は共有フォルダを設定して置かれたファイルを取得する方法です。 現象としましては、数時間起動させておくとメモリを1GB程度使用してフリーズしてしまいます。 (エンドユーザーのPCで発生しており、当方の開発環境では確認しておりません。) 上記を踏まえ質問があります。 (1)自分でソースを追いかけ、調査を行ったところ、ファイルを取得するメソッド(getfile)内で、Scripting.FileSystemObjectを使用して おり、以下の様に毎回インスタンスを生成しています。ですが、処理が終わった後、インスタンスの解放処理を行っていません。  スコープが外れた場合、参照は自動的に消滅すると思っていますが認識は合っていますでしょうか?  Dim fso As New Scripting.FileSystemObject (2)「VB6.0 メモリリーク」のキーワードで検索したところ、UBoundについての記述を見つけることができました。  Microsoftサポート 文書番号: 197190(http://support.microsoft.com/kb/197190/ja)  ファイルを取得するメソッド(getfile)内で、UBoundを使用していますが、上記URLとは異なる使用方法です。 上記URLでの使用方法 UBoundのパラメータに配列の戻り値を指定する。  作成したプログラムでの使用方法 指定したフォルダ内のファイルを取得するメソッド(getinfile)でbyrefキーワードに配列を指定して、その配列の要素数をforループの  上限数に使用しています。 使用方法に問題はないと思うのですが、もしかして、UBoundを使用するのがまずいのでしょうか。 当然、予期せぬデータ等に対する不具合も疑いましたが、現象が発生した状態の変換元ファイルを使用して動作させたところ 問題はありませんでしたのでメモリリークを疑っている状態です。

  • C言語のプログラムのメモリリークに関して

    動的メモリ管理を用いて,キーボードからの入力を行単位で辞書順にソートして出力するプログラムで、メモリリークが有るため解消したいのですが、freeをどのように用いれば良いのかが分かりません。 動的メモリについての理解が不十分であるため、自分なりにfreeを用いてみるとプログラムが途中で止まってしまい、解消することができません。 以下のプログラムは、自分なりにfreeを用いた部分を除けば、ソート後の出力は正しく出力されます。(メモリリークは発生します。) アドバイス、間違いの指摘等していただければと思います。お願いします。 環境は、Windows XP Professional SP3 32bitでVisual C++ 2008 Expressを使用しています。 #include <stdio.h> #include <string.h> #include <crtdbg.h> #include <stdlib.h> #define MAXLINES 20000 // 最大行数 #define LINELENGTH 20 // 1行の最大文字数 /* 標準入力からの入力を,一行づつ動的に確保したメモリに格納し, そのアドレスを文字列へのポインタ配列に保存する. Ctrl+Zで入力を終了する. lines : 文字列へのポインタの配列 numMax : 最大の読み込み行数*/ int ReadLines(char *lines[], int numMax){ int cnt = 0; static char buf[LINELENGTH]; while (cnt < numMax && gets(buf)) { lines[cnt] = malloc(strlen(buf) + 1); if (lines[cnt] == NULL) { printf("Allocation error.\n"); break; } strcpy(lines[cnt], buf); cnt++; } return cnt; } /* ポインタ配列の指す文字列を標準出力に表示 lines : 文字列へのポインタの配列 num : 行数*/ void PrintLines(char *lines[], int num){ int i; for (i = 0;i < num;i++) printf("%s\n", lines[i]); } /* ポインタの配列を,辞書順にソート lines : 文字列へのポインタの配列 num : 行数*/ void Sort(char *lines[], int num){ int i,j; char temp[LINELENGTH]; for(i=0;i<num;i++){ for(j=num-1;j>i;j--){ if(strcmp(lines[j],lines[j-1])<0){ strcpy(temp,lines[j]); strcpy(lines[j],lines[j-1]); strcpy(lines[j-1],temp); } } } } int main(){ int cnt,i; static char *lines[MAXLINES]; cnt = ReadLines(lines, MAXLINES); printf("----- %d lines -----\n", cnt); Sort(lines, cnt); PrintLines(lines, cnt); /*自分なりにfreeを用いた部分*/ for(i=0;i<cnt;i++){ free(lines[i]); } //メモリリーク情報の表示 _CrtDumpMemoryLeaks(); return 0; }

  • メモリ容量が余っているのにメモリ不足?

    PCを数時間か使っていると新たにアプリケーションを開けなくなり、そのときにエラーの時に鳴る音が連続してなりつづけます。(音はアプリケーションを減らせば消えます) メモリ不足で不安定になったような感じがしますが、メモリは余っているように見えます・・・ これの原因と対処法がわかる方がいましたら是非教えてください。 ちなみにメモリをソフトで検査したところエラーは見つかりませんでした。 OS: WindowsXP Pro CPU: Intel Core2Duo E6700 マザーボード: ASUS P5B メモリ: PC5300 サムソンオリジナル1G×2

  • メモリが"read"に・・・ といったエラー

    こんにちは。どなたかご存知でしたら教えていただきたいのですが、 一定のアプリケーションを起動しようとすると 「"0x7c87b8d5"の命令が"0x0028ef3c"のメモリを参照しました。メモリが"read"になることはできませんでした。」というエラーがでて、起動できません。 起動できないアプリケーションは ・iTunes ・Excel ・Adobe Reader(PDF) です。 どれもよく使うアプリケーションなので大変困っています。 ※PCはwindows XPです。 どなたかご教授下さい。よろしくお願い致します。

  • 右クリックでフリーズ

    先日から、アイコンなどを右クリックして削除などをしようとすると ポインタがストップウォッチの形になったまま、固まってしまいます。 しばらくしても動かないので、どこかしらクリックすると 「アプリケーションは応答していません」という表示が出て、画面が白っぽくなり強制終了するしかなくなってしまいます。 これでは、プロパティを見たり削除をクリックしたり出来ないので、 非常に困っています。 お分かりになる方、いらっしゃいましたら助けてください。m(__)m 宜しくお願い致します。 Vista HomePremium SP2 Core2Duo E8500 メモリ4GB

  • メモリが”read”にならない?

     アプリケーションエラー「"0x44e27780"の命令が"0x041c1ec4"のメモリを参照しました。メモリが"read"になることはできませんでした。プログラムを終了するには[ok]をクリックしてください。」というダイアログボックスがでます。  これはどういう現象なんでしょうか。  これがでないようにする方法はありますか。  パソは win XP です。 

  • メモリを増設したいのですが・・・。

    どういったメモリを購入すればいいかわかりません。 アマゾンで一応探して見つけてはみましたが、これでいいのかわからないです。 ⇒http://www.amazon.co.jp/%E6%96%B0%E5%93%81%E2%96%A0%E5%AF%8C%E5%A3%AB%E9%80%9A-ESPRIMO-FH55-FMVF55CDR-8GB%E3%83%A1%E3%83%A2%E3%83%AA%E2%96%A0/dp/B0062FJFG2/ref=sr_1_1?s=computers&ie=UTF8&qid=1336640477&sr=1-1 オススメがあれば教えてください。 使っているパソコンは一体型のパソコンでOSなどは以下の通りです。 ----- OS 名 Microsoft Windows 7 Home Premium バージョン 6.1.7601 Service Pack 1 ビルド 7601 OS 製造元 Microsoft Corporation システム製造元 LENOVO システムモデル IdeaCentre B305 10052 システムの種類 x64-ベース PC プロセッサ AMD Athlon(tm) II X2 235e Processor、2700 Mhz、2 個のコア、2 個のロジカル プロセッサ ---- あと、メモリってこれ(画像参照)でいいんですか?

  • VC++のメモリウィンドウの使い方について

    double型のポインタのポインタに入っている数値をチェックしたいのですが、表示内容の読み方がわかりません。 どのようにすればわかりやすいのでしょうか? 次のような形のポインタに入っている数値を見たいのです。 double **a; a=(double**)malloc(sizeof(double*)*5); for(i=0;i<5;i++) a[i]=(double*)malloc(sizeof(double)*5); これをメモリウィンドウで調べようとしてるんですが、 アドレス a 0012FF7C 0110 0048 FFC0 0012 0012FF84 36D9 0042 0001 0000 0012FF8C 0E60 0048 0DA0 0048 0012FF94 0000 0000 0000 0000 0012FF9C F000 7FFD 0000 0000 0012FFA4 0000 0000 FF94 0012 0012FFAC 0000 0007 FFE0 0012 0012FFB4 D8EC 0042 C0C8 0046 とズラーッっと出てきてよくわかりません。