特定のプロセスが使用している物理メモリ量を確認する方法

このQ&Aのポイント
  • 特定のプロセスが使用している物理メモリ量を確認する方法についてご教示ください。
  • プロセスが使用している物理メモリ領域は「Working Set」と呼ばれますが、そのうち「Shared Bytes」は他のプロセスと共有されるため、特定のプロセス専用のものではありません。
  • 「Working Set」から「Shared Bytes」の使用量を引くことで特定のプロセスが使用している純粋な物理メモリ量を知ることができます。パフォーマンスモニターなどのツールを使用して、「カウンタ」と「インスタンス」を取得し、適切な計算を行うことで求めることができます。
回答を見る
  • ベストアンサー

特定のプロセスが使用している物理メモリ量

特定のプロセスが使用している物理メモリを確認する方法を教えてください。 プロセスが使用している物理メモリ領域は「Working Set」と呼びますが、「Working Set」には「Private Bytes」と「Shared Bytes」が含まれます。 「Shared Bytes」は、他のプロセスと共有される物理メモリのため、特定のプロセス専用で使用される物理メモリではありません。 「Private Bytes」は、そのプロセスが物理メモリで利用中のものとページアウトされたものになり、ページアウトされたものは物理メモリにはありません。 「Working Set」は「Private Bytes」+「Shared Bytes」の総和といっても、ページアウトされたものをは物理メモリにないため、ページアウトされたものは引かれています。 「Working Set」の値から「Shared Bytes」の使用量を調べて、「Shared Bytes」の中で特定のプロセス専用のものでないものを引くことができれば、特定のプロセスが使用している純粋な物理メモリを知ることができるのではと考えております。 パフォーマンスモニターなどのツールでどの「カウンタ」のどの「インスタンス」を取得して、どのような計算をすれば、求めることができるかご教示頂けませんでしょうか。

noname#242248
noname#242248

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

  • ベストアンサー
  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.5

> しかし、「Shared Bytes」にプロセスBだけが使用するライブラリがあり、 > プロセスAの物理メモリ量を求める際に「Shared Bytes」からプロセスBが使用しているライブラリ分のメモリを引くことができなければ、 > 「Working Set」にはプロセスBのライブラリのメモリも含まれてしまうことになるのではと思っております。 プロセスBだけが使用しているライブラリだったなら そもそもプロセスAには一切関係ない話で プロセスAが使っているメモリとしては最初からどこにも計上されません。 > プロセスAでもプロセスBでも同じライブラリを使用するので > 「Shared Bytes」におきましょうということなら共有してそのメモリは使用されているので理解はできます。 例えば、プロセスAとプロセスBだけが共有しているメモリがある状態で プロセスBを落とすと、その瞬間にそのメモリはプロセスAだけの物になるのでは? という話であれば、 それはその通りです。 その当たりのことを厳密に考えるなら、 ShareableとSharedという言葉を使い分けてください。 ・Shareableは共有可能だけど他のプロセスがたまたま使っていなくて自分だけが使っている分も含まれる ・Sharedは実際に他のプロセスも共有している分だけ (当然ですが、SharedはShareableの一部になります。) 細かい話なので不要かと思って(普通は「WS Shareable」の方を見るので)前の回答では特に触れてませんでしたが、 ProcessExplorerにも「WS Shareable」と「WS Shared」があります。 > Mac Macがメモリ管理機能さえ持っておらず、各プロセスが直接物理メモリにアクセスするようなOSとはとてもじゃないけど思えないのですが……。 (各プロセスが協調してメモリ管理に責任を持たなくてはいけなくなりメモリ管理が破綻してしまいます。) 各プロセスへの仮想アドレス空間の提供などメモリ管理はOSの基本的な役割ですし、Windowsと同じではないにしても管理機能はあると思いますが。

noname#242248
質問者

お礼

ありがとうございます。 メーカーが算出したメモリ使用量(Private Bytes)と同様にこちら側でパフォーマンスモニターを使用して取得したメモリ使用量についてもPrivate Bytesでのバージョンアップ前後の結果をユーザーに報告しましたが特段、Working SetとPrivate Bytesの違いの説明については求められず、無事、報告は完了しました。 ※ 報告書には、Working SetとPrivate Bytesの説明とWorking Setで取得した結果も掲載しています。

noname#242248
質問者

補足

ありがとうございます。 日経BP社のMicrosoft公式解説書「Windows Sysinternals徹底解説」2012年7月1日 電子書籍版に以下の記載がありました。 WS Shareable Bytes -ファイルマッピングによって現在使用中のワーキングセット(物理メモリ)のうち、他のプロセスと共有することができるバイト数を示します。 WS Sghared Bytes - ファイルマッピングによって現在使用中のワーキングセット(物理メモリ)のうち、1つ以上の他のプロセスのアドレス領域にもマップされている領域のバイト数を示します。 当初、あるメーカーにメモリ使用量の参考値を出してもらう際、てっきり、「Working Set」で取得されていると思っていたのですが、「Private Bytes」を取得をしており、こちらの検証でもメーカに合わせて「Shared Bytes」で報告するので気にになくてよくなりました。 kiyomac様からMacOSは物理メモリにアクセスしているという話をされていたのでkiyomac様からその出典元を明らかにした上で説明して頂こうとしました。その情報が裏付けできるような出典元があるか確認するためでした。 現在のMacOSの最新版はEl Captainですが、漢字Talk7の頃から仮想メモリを使用しているようです。MacOSであろうが、Linuxであろうが仮想アドレス空間がないということは今では考えられないと思っています。 しかし、昔のMacOSではアプリケーションが自由にメモリを書き換えしていたようです。 -------------------------------------------------------------------------- 仮想記憶 https://ja.wikipedia.org/wiki/%E4%BB%AE%E6%83%B3%E8%A8%98%E6%86%B6#Mac_OS Mac OS Mac OSはSystem 7から「仮想メモリ」として実装される。 --------------------------------------------------------------------------- --------------------------------------------------------------------------- 猪木のように爆弾をかかえたシステム http://www7b.biglobe.ne.jp/~macintosh/mac/bom/bom.html ---------------------------------------------------------------------------

その他の回答 (4)

noname#242220
noname#242220
回答No.4

Windowsのメモリ管理は『仮想メモリ』上で行われます。 純粋な物理メモリサイズは計算出来ないです。 物理メモリへのアクセスはインデックスエリアを経由して、 ページングされた物理メモリ領域にアクセスします。 (これはメモリコントローラの仕事) Macは本当に物理メモリにアクセスしてます。 Windowsだけが特殊。

noname#242248
質問者

補足

ありがとうございます。 仕事柄、Macも所有していますが、物理メモリに直接アクセスしているとは知りませんでした。 Windowsのメモリ管理については、他のプロセスによってメモリが上書きされたりしない様に カーネルのメモリーマネージャがメモリの管理をしていると記載されていました。 コンピュータによって搭載されているメモリ容量は異なるため、仮想アドレス空間が使用されているという記載もありました。 Windowsが特殊とのことですが、LinuxもMacと同じ仕組みということでしょうか。 Macの場合、Windowsのようなメモリマネージャを使用せずにプロセスが直接物理メモリにアクセスしているということでしょうか。 Macの場合、プロセス毎の純粋な物理メモリ量を知ることが出来るということでしょうか。

  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.3

> 「Workng Set」の値と比較をしてみると、「WS Shareable Bytes」+「WS Private Bytes」が「Working Set」になっているように見えます。 WSはWorking Setの略なのでそうなります。 (回答No.2ではパフォーマンスモニターに合わせて略さずに書いてます) > 「Private Bytes」から「WS Private」を引いたものが恐らく、ページアウトされたものではないかと推察しています。 それで正しいです。 回答No.2で等式を2つ並べて書いたので伝わるかなと思っていたのですが、 「Virtual Bytes」のうち物理メモリ上にあるのが「Working Set」 「Private Bytes」のうち物理メモリ上にあるのが「Working Set - Private」 「Shared Bytes」のうち物理メモリ上にあるのが「Working Set - Shareable」 という関係です。 > なので、そのプロセスで使用されている物理メモリ量はと聞かれた場合、 > 「Working Set」の値がそうですということでいいのではないかと思うようになりました。 プロセスで使用されている物理メモリ量としては、 「Working Set」または「Working Set - Private」のどちらかを使うことになるでしょうね。 (どっちを使うかは、共有分を含めたいかどうかによるので、目的に応じて好きな方を使えば良いと思います。 Vista以降のタスクマネージャーがプロセスの物理メモリ使用量としてデフォルトで表示するのは「Working Set - Private」の方。)

noname#242248
質問者

補足

ありがとうございます。 「WS」が「Working Set」の略であることは分かっているのでその点は大丈夫です。 ProcessExplorerのデフォルト設定では、「WS Privates Bytes」「WS Shareable Bytes」のチェックはついていないので、取得はしていませんでしたが、ご教示頂いたことを自分でも確認するために「WS Privates Bytes」「WS Shareable Bytes」を有効にして取得してみました。 一転気になる点がありますが、「Shared Bytes」は他のプロセスと共有されるメモリ領域で、ライブラリ(.DLL、.lib)などがおかれるという情報が記載されているサイトがありますが、「Shared Bytes」に他のプロセスと共有されないライブラリが存在するのでしょうか。 ライブラリ(.DLL、.lib)は、他のプロセスと共有されないものも「Shared Bytes」におかれるとしたら、「Shared Bytes」というのはおかしいのではと思っております。 プロセスAでもプロセスBでも同じライブラリを使用するので「Shared Bytes」におきましょうということなら共有してそのメモリは使用されているので理解はできます。 しかし、「Shared Bytes」にプロセスBだけが使用するライブラリがあり、プロセスAの物理メモリ量を求める際に「Shared Bytes」からプロセスBが使用しているライブラリ分のメモリを引くことができなければ、「Working Set」にはプロセスBのライブラリのメモリも含まれてしまうことになるのではと思っております。 ライブラリ(.DLL、.lib)については、共有されないものは「Working Set - Private」に存在するのでしょうか。

  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.2

> 以下のサイトの情報からでしょうか。 いえ、タスクマネージャーやパフォーマンスモニター、ProcessExplorerで各項目の数値を眺めてみて 言葉の意味からしてもこれかなと。 > このサイトの情報の場合、以下の点が気になっています。 私の認識は以下の通り。 【仮想メモリ(物理メモリとページアウト分の和)】 「Virtual Bytes」 = 「Private Bytes」 + 「Shared Bytes(※1)」 【物理メモリ(ワーキングセット)】 「Working Set」 = 「Working Set - Private」 + 「Working Set - Shareable(※2)」 ※1:各ツール上でShared Bytesという項目は見当たらなかったのでPrivate Bytesに対応させてここに置いた ※2:ProcessExplorerの呼称に倣った

noname#242248
質問者

補足

ありがとうございます。 Process Explorerの場合、「Selecet Colums」-「Process Memory」タブに「WS Shareable Bytes」「WS Privates Bytes」のチェックボックスがあり、「Workng Set」の値と比較をしてみると、「WS Shareable Bytes」+「WS Private Bytes」が「Working Set」になっているように見えます。 以下は、プロセス「Skype」のメモリ使用量をProcess Explorerとタスクマネージャで取得したものです。 「Private Bytes」から「WS Private」を引いたものが恐らく、ページアウトされたものではないかと推察しています。 「Private Bytes」は84,808Kで、物理メモリ上にあるのが56,196K、ページアウトされたものが28,012Kと解釈しています。 ----------------------------------------------------------------------------------------------------- 1.Process Explorer プロセス:Skype.exe Private Bytes: 84,808K Working Set:98,524K WS Private:56,196K WS Shareble:42,328K 2.タスクマネージャー プロセスSkype.exe  メモリ(プライベートワーキングセット):56,196K ------------------------------------------------------------------------------------------------------ 「Shareable Bytes」は、ライブラリ(.dll、.lib)が置かれるので、プロセスA、プロセスBでも使用される共通ライブラリ「1234.dll」がある場合、プロセスA専用ではないがプロセスAで使用されていることは事実なので、 「Shareable Bytes」の中でプロセスA専用で使用されている物理メモリを調べること自体が間違っているのではないかと今考えるようになりました。 Process Explorerではプロセスによって使用されているDLL、レジストリ、ファイルを確認することができ、その中にファイル「C:\Windows」も使用されており、他のプロセスでもファイル「C:\Windows」が使用されていることが確認できます。 なので、そのプロセスで使用されている物理メモリ量はと聞かれた場合、「Working Set」の値がそうですということでいいのではないかと思うようになりました。

  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.1

Working Set - Private (プライベートワーキングセット) を参照すれば良いかな。

noname#242248
質問者

補足

ありがとうございます。 以下のサイトの情報からでしょうか。 --------------------------------------- メモリ使用量の調査。用語メモ書き… http://jehupc.exblog.jp/8104558/ Working Set -Private-(Vistaのみ) 上記にて説明済みですが、ワーキングセット - 共有オブジェクト の値となります。実メモリ上のそのプロセスonlyな確保している空間です。 Vistaのタスクマネージャのデフォルトです。 --------------------------------------- このサイトの情報の場合、以下の点が気になっています。 「ワーキングセット - 共有オブジェクト」とありますが、「共有オブジェクト」は「Shared Bytes」ということであっておりますでしょうか。 「Working Set - Private」は「Shared Bytes」の中で他のプロセスと共有されない物理メモリということでしょうか。 その認識であっている場合、「Working Set」、「Private Bytes」、「Working Set - Private」を使用して他のプロセスと共有されない物理メモリを求めることはできますでしょうか。 「Private Bytes」は他のプロセスと共有されないメモリ領域で、「物理メモリにあるもの」と「ページアウトされたもの」になります。 「Working Set」は「Private Bytes」と「Shared Bytes」の総和で「ページアウトされたもの」は含まないのでそれはいいのですが、他のプロセスと共有される物理メモリが含まれます。 「Working Set - Private」が「Shared Bytes」の中で他のプロセスと共有されない物理メモリであっている場合、「Working Set」から「Working Set - Private」を引くと、「Private Bytes」と 「Shared Bytes」の中で他のプロセスと共有されない物理メモリが足された値となりますが、その場合、「Private Bytes」と「Shared Bytes」の中で他のプロセスと共有されない物理メモリを分けることができなくなります。 Microsoft等出典元がはっきりしているサイトで今回質問した純粋なプロセス専用の物理メモリを取得するための情報がありましたらお教えいただけますでしょうか。 探し方が悪かったのか、上手く情報にたどり着けていません。

関連するQ&A

  • パフォーマンスモニタのメモリについて

    1.パフォーマンスモニタであるPrivate Bytes、Working Setがいまいち理解できませんが、下記の認識であっておりますでしょうか。 (1) 仮想メモリ 物理メモリが不足したときに使用するハードディスク上に設定した仮想メモリ(ページングファイル) (2) Private Bytes : ほかのプロセスから共有されない仮想メモリサイズ (3) Working Set : プロセスが使用している物理メモリサイズ 2.認識があっている場合、Working Setは、他のプロセスと共有されていますでしょうか。 Working Setがほかのプロセス共有されていないとのことでしたら、Private Bytesと Working Setを足した値がそのプロセスが使用しているメモリの合計ということでしょうか。

  • PF使用量が5GB、ProcessExplorer

    先日タスクマネージャを確認したところ、別添画像のようにPF使用量が5GB近くになっていました。 以前に確認したときは多くても1GB前後だったと思います。 再起動しても変わらず、試しにタスクトレイの常駐ソフトを全て終了させても4GB程度までしか下がりません。 ここの過去ログを参考に、ProcessExplorerというソフトでメモリを占有しているプログラムがないか探してみたのですが 極端にメモリを食っているものは見つかりませんでした。 ただ、気になる事が・・・。 ・全プロセスのPrivate Bytesの合計:約4.7GB ・全プロセスのWorking Setの合計:約500MB ProcessExplorer(用語説明より抜粋) Private Bytes:プロセスに排他的に割り当てられたメモリのサイズ Working Set:プロセスが利用している物理メモリのサイズ 上記のようにPF使用量とPrivate Bytesの合計値がほぼ一致したのですが、 そもそも、通常PF使用量というのは、Private Bytesの合計値のことなのでしょうか? また、Private Bytes がWorking Setの10倍というのは普通なんでしょうか? 分からない事だらけで、とりとめもない質問になってしまいすみません。 根本的な質問は、どうしてPF使用量が極端に増えているの??なのですが・・・。 どなたかアドバイスおねがいいたします。 WinXP Pro SP3 CPU:Intel E6750 2.66GHz メモリ:2GB

  • パフォーマンスモニターのメモリ使用量測定について

    Windows Server 2003のパフォーマンスモニターについてお聞きしたいことがあります。 ■質問 パフォーマンスモニターの以下の2項目は、 一方が増加すれば一方が減少するという相関を持たないのでしょうか? ・memory/available bytes(利用可能な物理メモリの容量) ・process/working set(プロセスが使用している物理メモリ量) ■質問の背景 サーバーに対しあるリクエストをした際に、memory/available bytes(利用可能な物理メモリの容量)が一時的に1.5GB程度減少しますが、process/working set(プロセスが使用している物理メモリ量)が増加しません。 利用可能なメモリが減少したということは、その分何らかのプロセスがメモリを消費していると考えますが、パフォーマンスモニターの結果がそのような傾向を示さなかったため、質問させて頂きました。

  • Windowsのメモリ使用量が稼働プロセスと不一致

    Windows で使用しているメモリ量をプロセスごとに把握する際に、 検算としてリソースモニタのメモリタブに表示されるプロセスのメモリ量を合計してみましたが、 その容量がリソースモニタで表示されている物理メモリの使用サイズと一致しません。 ■使用マシン  OS : Windows Server 2008 R2 Enterprise 64bit  物理メモリ容量 : 16 GB ■リソースモニタでの出力内容  物理メモリ使用量 : 11241 MB  リソースモニタに表示されるプロセスの全メモリ合計(ワーキングセット) : 8306 MB  リソースモニタに表示されるプロセスの全メモリ合計(コミット) : 9509 MB タスクマネージャや tasklist コマンドで表示されるプロセスのメモリを合計しても、 同様に「物理メモリ使用量」の値に届かないため、プロセス外の何らかのものが メモリを使用していると推測されますが、実際はどうなのでしょうか? (共有メモリなど特定のプロセスに属さないメモリ領域など??) また、そういうものがあった場合、そのメモリ使用量をどのように確認すればよいでしょうか?

  • オンボードグラフィックにおけるメモリ使用量について

    UMA方式のオンボードグラフィック環境にてVRAMを利用するアプリケーションを実行した場合、1つのプロセスが使用するメモリ(タスクマネージャー上のプライベートワーキングセット等)には、VRAMとして使用している量も含まれているのでしょうか? また、参考となるようなページがありましたら、教えて頂けると助かります。 よろしくお願い致します。

  • Windowsの仮想メモリシステムについて

    こんにちは。 OSは現在、WindowsVistaと、Windows7を使っています。 こういったWindows系OS全てに共通している、仮想メモリなどのメモリ関係の用語について、かなり詳しく調べたのですが、最近、それらをきちんと理解できていない事に気づきましたので、今回の質問をさせて頂きます。 まず僕は、メモリ関係の各用語について、以下のように解釈しています。 ---------------------------------------------------------------------------------- ●物理メモリ 基本的にはRAM上にあるメモリの事であり、OSによってアクセスされる。 OSは起動後、各物理メモリに、物理アドレス(物理アドレス空間におけるアドレス)を割り当てる。 ●仮想メモリ領域 仮想メモリ領域は、各プロセスが、メモリを使うためにアクセスするアドレス空間の事であり、物理メモリと、次で説明するページファイルで構成されてる。 現在のWindows系OSでは、プロセスが起動すると、そのプロセスとセットになる、4GBの仮想メモリ領域 (仮想アドレス空間とも呼ばれる) が割り当てられ、実行するプログラムコードと、そのコードが参照して操作するデータが、そこにマップされる。 プロセスの持つ仮想メモリ空間4Gバイトの内、ユーザが使用可能なメモリ領域は、下位2Gバイトであり、上位2Gバイトはシステムによって使用される、「カーネルメモリ」となる。 OSと、コンピュータ上の専用のハードウェアコンポーネントは、プロセスが使用している仮想アドレスを、物理アドレスに変換する処理を行っている。 Windowsの場合、仮想メモリの各フラグメントを、「ページ」といい、サイズは通常 4KB である。 ●ページファイル 物理メモリの不足を補うために、HDDに用意されたメモリ領域の事である。 デフォルトではC:\pagefile.sys というファイルが、ページファイルとなっている。 これによって、RAM容量よりも大きなサイズの、仮想メモリ空間を利用することができる。 ページファイル上に置かれたページにアクセスするには、そのページをRAM上に読み込まなければならないため、現在使われていないRAM上のページとの入れ替えが、OSによって行われる。 このとき、RAM上の不要なページをページファイルに書き出し、RAMから消去することを「ページアウト」あるいは「スワップアウト」と呼び、必要なページをページファイルから読み出し、RAM上に配置することを「ページイン」あるいは「スワップイン」という。 ●コミットページ(コミットチャージ) プロセスに割り当てられた、使用可能な仮想メモリページ全てを表す。 これには、RAMからページアウトされたメモリページも含まれまれる。 コミットページの合計サイズと現在使用中のサイズは、タスクマネージャのパフォーマンスタブにある[ページファイル]の部分で確認できる。 この[ページファイル]という部分は、上で説明したページファイルの事ではなく、 RAMとページファイルの両方に存在している、メモリページのサイズを意味する。 ●ワーキングセットページ プロセスから最も頻繁かつ直近にアクセスされる、常にRAM上にあるメモリページの事である。 ワーキングセットページには、そのプロセスしか使えない部分(プライベートワーキングセット)と、他のプロセスと共有可能な部分がある。 共有可能なワーキングセットは、他のユーザープロセスで、物理メモリが不足し始めた場合に使用できる。 ----------------------------------------------------------------------------------- まず、以上の解釈で、おかしいと思う部分がありましたら、どしどし突っ込んで下さい。 次に、以下のようなコードブロックを含む、C++プログラムを作成して実行しました。 ------------------------------------------------------------ char *p; for(int i=1; i<=2000 ; i++) p=new char[1024*1024]; ------------------------------------------------------------ このコードブロックは、pというポインタに対し、1024×1024B = 1MB のメモリの割り当て作業を、2000回行います。 つまり、このプログラムをビルドして作成された、a.exeという実行ファイルを実行すると、 約2000MBのメモリがa.exeに割り当てられるという事が予想できます。 プログラムの実行中に、タスクマネージャのプロセスタブにある、a.exeの行を見ていると、 メモリに関する列項目値は、 コミットサイズ:2012.928KB=1965.75MB ワーキングセット:4616KB=4.51MB プライベートワーキングセット(a.exeしか使えないワーキングセット):2656KB=2.59MB となっていました。 ワーキングセットページのサイズが4.51MBとしかない事から、約2000MBのメモリの割り当ての大半は、RAM上にはないメモリページ、つまりページファイル上のメモリページを使って行われたのだと、僕は思いました。 ところが、ページファイル上のメモリページの使用量を、専用のソフトで調べてみると、 a.exeの実行前から全く変化していなかったので、実際はページファイル上のメモリページを使用しなかったのだという事になります。 では一体、どこにあるメモリページが、a.exeで使用されたのかという事になります。 この件について、皆さんはどう思われるでしょうか? 長くなりましたが以上です。 何か御存じの方がいらっしゃれば、是非、アドバイスして頂きたく思います。 では、よろしくお願い致します。

  • 物理メモリ使用量が減らなくなりました

    先日、強制再起動がかかってから物理メモリ使用量がPC起動直後でも70%より減らなくなってしまいました。 ソフトを色々消して減らないか試してみたのですが、そもそも物理メモリとCドライブのメモリは違ったようで…。 Cドライブはまだ50%も使っていませんでした。 余計なプロセス終わらせれば!とも思い、終わらせられるものは終了させるも効果なし。 3ヶ月ほど前に同じ症状にあったときは原因がわからず結局OS入れなおしで解決したのですが、2度目となると3度目がありそうで。 動作自体は劇的に重くなったりしていないので余計に不安になってしまいます。 解決方法おわかりになる方いましたら暇なときにでも助言ください。

  • メモリ使用量について

    パソコンのメモリ使用量が今どれくらいなのか知りたいのですが、 タスクマネージャーの物理メモリやらシステムキャッシュとか??なのでメモリについて詳しい方具体的(タスクマネージャー全般の数字ついてや今パソコンがどういう状況にあるかなど)に教えていただけないでしょうか? m(__)mよろしくお願いいたします。 ■参考 合計 ハンドル   8600 スレッド   433 プロセス    38 物理メモリ 合計        1562672 利用可能       1147700 システムキャッシュ  561860 コミットチャージ 合計   357900 制限値  2969244 最大値  363132 カーネルメモリ 合計    83744 ページ   55624 非ページ  28252 (イラストレーターとIEを起動させている状態です)

  • プロセスの使用している仮想メモリ量について

    はじめまして。 現在作成中のプログラムで仮想メモリの使用量が増加していく現象が発生しています。これは、Windows2000のパフォーマンスモニタを利用して発見したものです。 そこで、仮想メモリの使用量を調べるためにWindowsAPI関数を調べているのですが、システム全体のメモリ使用量等がわかるGlobalMemoryStatus関数があることは分かりました。 システム全体ではなく、特定のプロセスの仮想メモリ使用量がわかる関数または手法をご存知の方は教えてください。 よろしくお願いします。

  • メモリの使用量について

    メモリの使用量の確認方法について教えてください。 freeコマンドを実行すると以下のように表示され、2GB中1.3GBを使用していることが分かります。 total used free shared buffers cached Mem: 2072828 1358364 714464 0 175372 836028 -/+ buffers/cache:346964 1725864 Swap:2096472 0 2096472 どのプロセスがメモリを消費しているか調べたいと思い、topコマンドを実行後、"M"でメモリの消費量の多い順にプロセスを並べ替えて、使用率の合計を計算してみました。 しかし、その合計値は約20%ほどです。 2GBのメモリを積んでいますので400MBほどしか使用していないことになります。 freeコマンドとtopコマンドでどうしてこんなに大きな差が出ているのでしょうか? また、どちらが正しい値なのでしょうか? ご存知の方がいらっしゃいましたら教えてください。 よろしくお願いいたします。