Windowsのタイムスライスの設定を変更することにより、体感速度を上げてみませんか?
Windowsのタイムスライスのデフォルト値は20msになっています。この値はWindows3.0の時からまったく変わっていません。当時のCPUは386の20MHzぐらいだったと思います。その頃からCPUの速度は10倍近くに上がっているのにタイムスライスは変わっていません。また、同時に動作させているタスクやスレッドの数は当時とは比べ物にならないほど増えています。そこで、タイムスライスの設定を変更することで、体感速度をあげられるのではないかと考えました。
タイムスライスの変更方法は、System.iniファイルの[386Enh]のセクションにMinTimeslice=XXという行を追加するだけです。(XXは設定値で単位はミリセコンドです。)設定値を大きくすれば体感速度は落ちますが、ベンチマークの結果は良くなります。設定値を小さくしすぎると、タスクの切り替えにパワーが消費されるために全体的に遅くなります。個人的にはMMX Pentium200MHzクラスで4msぐらいが良いと思います。BeOSなんかだとタイムスライスは3msとなっています。
- re: とんとん さん
投稿日:1998年12月20日 13時58分
おお!?これは効果覿面かも。
実際にP54C/200MHz,MinTimeslice=4でやってみましたが、フォルダの開閉やSPICONによるサムネイル表示が速いです!
動作原理を伺った限りでは、ゲームなんかの時は若干不利になるかもしれないですが、普段のOSオペレーションが快適な方が便利ですね。
といっても、僕はブラシーボ効果が出やすい性格なんで(^^;;、他の方の結果も伺いたいです。
貴重な情報有難うございましたm(__)m>西家さん
- re: チャム&レオ さん
投稿日:1998年12月20日 14時38分
MinTimeSlice= って事は
MaxTimeSlice= とかもあるんでしょうか?(^^;;
いや・・・ちょっと気になったもので(笑)
- re: チャム&レオ さん
投稿日:1998年12月20日 14時43分
あ・・・あとこれNTでも有効でしょうか?
- re: TDF さん
投稿日:1998年12月20日 14時51分
ほほう、こりゃ良いこと聞いたぞ?どらどら・・・。
・・・むぅ、なるほど。こりゃいいや。確かに体感速度が上がってる。
大変有効な情報ですね、ありがとうございます。
因みに私の環境:PC-9821 Ra266(どノーマル)+GA-VDB16+SC-UPCI+Win98
- re: Tenkei さん
投稿日:1998年12月20日 17時42分
いいですねぇ〜。非常に体感速度が上がりました。いい情報をありがとうございます。訳あって98が今手元にないためAT機で試してみました。
PENII 266MHzでとりあえず 4 でやってみました。
- re: machan さん
投稿日:1998年12月21日 23時22分
確かに効果ありです。ところで、タイムスライスとは何ですか?
大体の見当としては、タスクの切り替わる時間というふうに見ているのですが、どうですか?
そうすると、
>設定値を小さくしすぎると、タスクの切り替えにパワーが消費されるために全体的に遅くなります
の理由は、同じ時間幅で見た時のタスクの切り替え回数が増えるからですか?
- re: TDF さん
投稿日:1998年12月22日 07時33分
>ところで、タイムスライスとは何ですか?
私は「1つのタスクにかまけている時間」と解釈しました。
つまり20msならば、1つのタスクを0.02秒実行した後、次のタスクを処理する・・・。
と言う具合ですか?
確かに実際はどうなんでしょう?西家さん、ご教授を。
- re: 西家 さん
投稿日:1998年12月22日 23時34分
皆さんご存知のように、ひとつのCPUが一度に実行できるタスクはひとつしかありません。擬似的に複数のタスクを実行するために、特定の時間毎にタスクを切り替えて実行しています。1つのタスクを実行してから、次のタスクに切り替えられるまでの時間がタイムスライスです。ほぼ、TDFさんのいうとうりです。
タイムスライスの設定値を小さくしすぎると、全体的に遅くなるのには主に2つの理由があります。
・タスクの切り替えやスケジューリングは一定の処理時間を消費します。タイムスライスが短いと、単位時間あたりのタスク切り替えの回数が増えるとともに、それが消費する処理時間も無視できなくなります。(特にAMD製のCPUはIntel製のそれに比べて、数倍の時間がかかる傾向があります。AMDのCPUはロケットカーみたいなものでシングルタスクには強いが、マルチタスクなどの小回りは効かない傾向があるようです。)
・タスクの切り替えが発生すると、キャッシュメモリーのヒット率が一時的に下がります。そのために遅い主記憶メモリにアクセスする回数が多くなり、プログラムの実行速度が落ちます。最近のCPUは大容量のキャッシュを利用することで高速化していますので、キャッシュのヒット率の低下は無視できません。
では、どうして体感速度が上がるのか?パソコンは同時に多くのタスクを処理しています。しかし、ユーザーにとって優先的に処理してほしいタスクをOSが優先的に実行するわけではありません。予め決められた優先度によってタスクを実行します。タイムスライスが短ければ、単位時間中に実行されるタスクの種類を増やすことができます。Windowsのスケジューラは、タイムスライスが長いほど、設定されている優先度が無視される傾向があります。タイムスライスが短いほど適切にスケジューリングされ、ユーザが優先的に処理してほしいタスクが処理される機会が適切に与えられます。適切にスケジューリングした結果、画面の変更結果がリアルタイムで表示されるようになり、ユーザのアクションに対する応答性が良くなります。つまり、体感速度が上がるわけです。
- re: A.T さん
投稿日:1998年12月22日 23時37分
最小タイムスライスがCPUの処理速度に対して大きすぎると,タスクによっては完了していてもCPUが解放されない,つまりアイドリングした状態になるということではないですか?