アプリ版:「スタンプのみでお礼する」機能のリリースについて

OSはWinXP Proです。下記の2つの投稿を踏まえて質問いたします。

http://okwave.jp/qa2418975.html
http://okwave.jp/qa2821850.html

物理メモリ上のデータがあふれた場合や、あまり頻繁に使わなさそうなデータはOSが選択的にディスク上の仮想メモリへスワップアウトするわけですが、このときに特定のプロセスのデータだけスワップアウトしないようにする事はできますか?
すなわち、スワップアウトするデータをOSに任せずに自分で選ぶ事は可能ですか?

目的は、特定のアプリケーションだけ頻繁に使うので、そのアプリのデータだけスワップさせたくないという事です。現状で、自分のPCは1.5Gのメモリを積んでいて、タスクマネージャのコミットチャージで見ると900Mぐらいしか使っていません。600Mもあれば、ひとつのアプリのプロセスを載せるには十分だと思います。

仮想メモリの設定でページングファイルを作らない、とすれば全てのデータは物理メモリ上におけるのでしょうが、それだとメモリを恐ろしく積まねばならず、非効率です。

ということなんですが、よろしくお願いします。

A 回答 (2件)

> このときに特定のプロセスのデータだけスワップアウトしないようにする事はできますか?



「そのようなプログラムの書き方をすれば(そういう専用プロセスなら)」
物理メモリをある程度強制的にコミットすることも可能ですが
既存のプロセスをそのようにすることはできません。
(こういうプログラムはメモリが足りないと失敗するので一般的ではないです<仮想化の恩恵を受けられない)、

よって、恐らく質問者さんの望むことはできません。

# よく使ってるものや前面にあるものなどは極力スワップアウトしない筈なので、
# 多分、明示的に指定しなくてもそうなってる可能性も高そうですが…。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。今のOSではそこいらへんが限度なんですね。

まさに操作中のアプリでも、物理メモリが500M以上は残っているはずなのにハードディスクをガリガリやり始めたりします。この辺が不満なんですけどね。

お礼日時:2007/07/06 09:37

メモリがどれだけ余っていようが「ファイルアクセス」が必要なソフトもありますし(アプリ次第)、


アクセスしてるのはアンチウィルスソフトだったとかOSの管理機能だったとかいうこともありえますし、
見た目の残容量と実際の容量が違ったりすることもありますし…。
# 「全体では500MB余ってる」といっても実際に500MB取れるとは限らないのです。

まぁWindowsは一応個人ユースですから、ソフトの方も一般向け
・スワップしないアプリにすると、メモリがないと動かなくなる
  ⇒一般には「売れない」
・メモリがなくても動くようなアプリにすると、スワップされる可能性あり
  ⇒商用ソフトは(専用ソフトを除けば)普通こう作る
要件に合致しないですから、まぁ難しいかと。
    • good
    • 0
この回答へのお礼

まあ、そういうことなんでしょうね。お付き合いありがとうございました。

アプリが自分でテーブル値や処理中のデータをテンポラリなファイルに一時保存しているなどアプリ側でやってるのなら仕方ないのですが、OS側で前面表示のアプリを優先的にメモリに残すなんていう選択的なことができるのなら、それを全自動にせずに少しユーザーに開放してくれてもいいんじゃないか、と言う程度のことです。

実際、画像処理や解析計算でテンポラリの大容量データができる事は結構あるのですが、仕事でPCを使っているとそういう人は多いと思います。

お礼日時:2007/07/11 13:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!