2002/08/08

プライオリティの話

XHTML 2.0WDとか、CSS2.1WDとか、読みたいなぁ、とは思っている今日この頃です。

最近256MB(そのうちビデオメモリ16MB)でも日常作業に不満を感じるぐらいになってきました。こっちにいるうちに256MBのSO-DIMMメモリでも買い足して384MB体制に移行しようか(オンボード128+追加256)、と本気で考えている今日この頃です。ま、そのへんは値段に寄りますが、地方都市だと確実に高くつくことは間違いないので、大都市で生活している人が帰省しそうなときに頼むか、室蘭に帰るときに札幌に寄っていくかして買いたい所ですが、どうなることやら。

ちなみに、実はシャープからはシャープの純正を謳った256MBメモリはでてないので256MBが使えるか非常に不安だったんですが、メビウスのサポートサイトをよく探してみると私の機種の動作確認周辺機器のところに何気なく某社の256MBメモリが使えると書いてあったので、たぶん行けそうです。そうなると512MBととか試してみたい所ですが…、そんな金はない。むしろ、サポートしてるかどうかなんていうのはメーカーの問題というよりはBIOSやチップセットの問題だから、メモリの限界容量はそっちを調べればよいような気もしたりはするなぁ。

さて、そんな話はさておきまして、XPが不安定な話。

今月末か、来月の頭に英語版SP1の登場がささやかれるWindows XPですが(そういえば、Win2KSP3がでましたね)、SP1ではexplorer.exeや言語バー回りの既知の不安定っぷりは改善されるんでしょうか…。その、explorer.exeが突如落ちる、みたいな話に対してはユーザーサイドからは特にこれといった手だてを打てないのが現状ですが、Windows Shellとしてのexplorer.exeのもったり感というか、挙動不安定というか、タスクバー回りの処理が数秒ほど止まったり(砂時計)するのは何とかしたい所。

そもそも、開発環境が入ってる時点で安定を求めてはいけない気がしますが、そういうツッコミは無しで話を進めます。で、XP以前からそうだったんですが、Microsoft Visual C++6を使っていて、300KBぐらいのC++ソースファイルを開いて編集したり、スクロールマウスでぐりぐり画面を移動させていると、突如VCが止まるんですよ。応答がなくなって、運がよければ数十秒後に復活したりしますが、大体は強制終了させて、そこまでの作業がパァになったりすることが多いです。

まぁ、原因はよく分かりませんが、どちらの例もさしあたりメッセージキューが詰まった(なんかの処理で止まった)とかスレッドが多すぎて肝心の処理に出番が回ってこないとかそんな感じなんでしょう(わかんないけど)。

スレッド数をみて基本優先度を決めるという手もある。
Fig 1. 基本優先度が高いものはスレッド数も多いねぇ。

ということで、解決編。私の経験の限りにおいては、explorer.exeやMSDEV.EXEの基本優先度をタスクマネージャから「通常以上」にあげるとすっきりと動くようになりました。このプロセスプライオリティの意味は、いまだによく分かってなかったりしますが、Windowsが不安定になってもタスクマネージャがきちんと動くのはタスクマネージャの基本優先度が「高」になっているからですし、スレッドの時間管理が手抜きなWin9x系のようにシステムが不安定になるとマウスやキーボードまで入力を受け付けなくなってしまってリセットしか手段がなくなる、ということがないのはWinNT系ではきちんとスレッドの時間管理がなされている上、マウスやキーボードが「リアルタイム」以上(だったと思う)のプライオリティで動いてるからに他ならないはず。まぁ、Win9xに比べればカーネルが安定している、という点において絶対的な違いがあるわけですが…

ちなみに、私が「高」じゃなくて「通常以上」にしたのは、それで状態がよくなったからです。まぁ、「高」まで上げなきゃならないほどクリティカルな作業でもないですし。

そんなわけで、普段は怖くてさわれないプロセスプライオリティーをいじってみたんですが、コレを本当に使いこなせればものすごくWindowsが快適になりそうな気がするんですが、どうなんですかね。ただ、プライオリティの意味を誤解して「WordやExcelや3Dゲームが重いから、『リアルタイム』で起動しちゃえ」とかやると大変な目に遭うので注意しましょう。マウスやキーボードがリアルタイム以上で動いているのは、その処理自体がリアルタイムで処理できるぐらい軽いからなわけで、激しく重いアプリケーションなどを「リアルタイム」とかで運用し始めると、その途端にWindowsが不安定になってフリーズする目に遭うこと間違いナシですからねー。

参考: TIPS: 起動するプログラムの優先度を変更する方法 (@IT)

つまりはあれですよ。仕事でいろいろな作業を平行してやるときに、ヘビーな作業の優先度を一番上にもってきても(重いアプリを「リアルタイム」でうごかすみたいな)、結局はヘビーすぎるからとりあえず後回しにする(結局、「通常」にもどして運用する)ハメになるってことですね。それで納期が近くなってあとで泣きをみる、と…

うされもん @acidlemonについて

|'-')/ acidlemonです。鎌倉市在住で、鎌倉で働く普通のITエンジニアです。

30年弱住んだ北海道を離れ、鎌倉でまったりぽわぽわしています。

外部サイト情報

  • twitter
  • github
  • facebook
  • instagram
  • work on kayac