本ホームページに記載されている内容は不正確であったり、間違っている場合があります。
本ホームページにより生じたトラブル、損害等については補償いたしませんのでご了承ください。

2001/01/14
シグマリオンの表示速度を高速化しよう!




 シグマリオンを使ってみてやっぱり気になるのは画面表示の遅さです。特に、ブラウザーはいらいらさせられることが多いですね。ああもう少し表示速度が速くならないかなぁ、、、とは常々考えています。

 実はフォント・キャッシュの上限値を引き上げることで画面表示の高速化を行う手法は知っていました。レジストリ・チューンというやつです(そうは言わないのかな?)。しかし、レジストリをいじると思わぬトラブルが生じることもあるため、知識不足の自分としては躊躇していました。ところが、WindowsCE Fanの「小技、裏技、必殺技」の掲示板の過去ログをのぞいてみたところ、先だってPHSドライバの変更時に使用したTascal RegEditを利用して、意外に簡単にチューンができそうだということが判りました。すでにかなり多くの方が成功しているようで、しかもその報告の多くが「効果がある」というものでした。こうなると、シグマリオンで試さない手はないでしょう。

 ということで、今回は思い切ってシグマリオンの画面表示の高速化に挑戦してみました。





1.作業に必要なもの

 今回の作業は、シグマリオンでH"を使えるようにした時と同様、レジストリの書き換えを伴いますので、レジストリエディタが必要となります。今回は前回と同様、TascalSoft さんのTascalRegEditを使用しました。作者の方ありがとうございます。
このソフトのインストール方法は、「H"との接続方法」のページに記載していますのでそちらをご覧下さい。

注)レジストリの編集の結果、マシンが起動しなくなったり、動作が不安定になったりするなど、思わぬトラブルを生じる場合がありますので、作業は自己責任にて行ってください。


2.レジストリの書き換え作業

 TascalRegEditを起動してレジストリの書き換え作業を行います。実際に書き換えるのは、HKEY_LOCAL_MACHINE\SYSTEM\GDI\GLYPHCACHE\の中にある「Limit」 という値です。TascalRegEditはツリー表示されるので迷わずに見つかると思います。ちなみに、Limitの数値はデフォルト状態で「4,000」になっていると思います。

 このLimitをダブルタップすると「DWORD値の編集」というダイヤログが表示されますので、青く反転している数値の部分を書き換えます。どの程度の数値が良いのかは、実際のところよく判りませんが、デフォルトで4,000が設定されていますので、その2〜5倍程度の数値にしてみることにしました。(あとで知ったのですが、この値を20,000以上に設定するとマシンの動作が不安定になる場合があるそうです。)

 ちなみに、フォント・キャッシュの上限値として記載される値は16進法となっています。エディタに記入する数値と、実際のキャッシュの値は以下のようになっています。

limit  1,000= 4k、Limit 4,000=16k、Limit 10,000=64k、Limit 12,000=73k
Limit 16,000= 90k、Limit 20,000=128k、Limit 40,000=256k、Limit 80,000=512k

■編集画面はこんな感じ
■TascalRegEditを起動

ツリーをたどり、HKEY_LOCAL_MACHINE¥SYSTEM¥GDI¥GLYPHCACHE¥
までいく。

■Limitのデフォルト値は4,000

円で囲んだ部分をダブルタップするとLimit値編集のためのダイアログが表示される。
■編集ダイアログ

この値を好みの数値に変更する。10,000〜20,000辺りが効果的ではないでしょうか。

 書き換えが済んだら「OK」ボタンを押してダイヤログを閉じ、 TascalRegEditも右上の「×」を押して閉じます。そして、本体底面にある、リセットボタンを押して作業は終了です。PHSドライバの書き換え同様、作業自体は数分で終了します。指定場所以外を触らなければ、特に問題は生じないと思います。

(注)繰り返しますが、レジストリの編集の結果、マシンが起動しなくなったり、動作が不安定になったりするなど、思わぬトラブルを生じる場合がありますので、作業は自己責任にて行ってください。





3.効果測定

■ベンチマークテスト
 フォント・キャッシュの上限値の引き上げにより、実際にシグマリオンのパフォーマンスがどの程度向上しているのか、効果の測定を行ってみます。効果測定といってもいろいろな方法がありますが、まず思いつくのがベンチマークテストです。マシン自体の速度がどの程度向上しているのか、客観的に観てみることとします。

 今回、ベンチマークテストには、WindowsCE Fanでもベンチマークテストに使われている、Dbench(作者:傍島康雄氏)を使わせていただきました。作者の方ありがとうございます。
注)ベンチマークテストについては、WindowsCE Fanのこのページで詳しい説明がされています。

 今回のベンチマークテストでは、それぞれテストを行う前にリセットを行い、それぞれのキャッシュ上限値で5回テストを行い、その平均値をとりました。テストの結果は以下のとおりです。
キャッシュ上限値 1,000 4,000 10,000 12,000 14,000 16,000 20,000 40,000 80,000
Int calc 1,546 1,546 1,556 1,552 1,554 1,554 1,555 1,556 1,550
Double calc 319 318 318 318 318 318 318 318 318
Circle draw 622 675 695 678 673 676 690 693 698
Rectabgle draw 1,532 1,543 1,549 1,523 1,529 1,554 1,540 1,534 1,541
Text draw 713 713 712 731 723 718 717 710 717
Scroll 14 13 14 14 15 13 15 15 14
total 4,744 4,808 4,845 4,817 4,811 4,834 4,834 4,825 4,838
注1.黄色のマスは項目ごとの最高値です。
  2.ベンチマークテストを行う項目は全部で6項目となっています。それぞれの項目の意味は、以下のようになっています 
     Int calc :整数演算(足し算)の性能テスト
     Double calc:倍精度演算(少数計算)の性能テスト
     Circle draw :円形描画(画面の円形を塗りつぶす)の性能テスト
     Rectargle draw:矩形描画(画面の四角をぬりつぶす)の性能テスト
     Text draw:テキスト描画(画面にテキスト文字を書く)の性能テスト
     Scoll:スクロール速度の測定

■実際の結果画面

テスト毎に多少の誤差は生じるが、ほぼ同一の値となる。

リセットを行わず、続けてテストを行うと結果数値が悪化していく。今回はテスト毎にリセットを行った。


■困った!
 ベンチマークテストの結果からは、フォント・キャッシュのチューニングの改善効果が明確に表されませんでした。当初予想としてはTextdrawの結果あたりが、もう少し向上するかなと考えていたのですが、実際は最大でも数%の改善、しかも12,000辺りがピークとなり、それ以上引き上げても逆に効果が下がるような結果となってしまいました。う〜ん残念。


■ 体感速度では効果あり!
 ベンチマークテストでは期待した結果が得られませんでしたが、体感速度では「効果あり」となりました。今回、ベンチマークテストと合わせて実際のテキスト文書の読込、スクロール等にどれだけの時間を要するのかのテストを行いましたが、こちらでは目に見える形で効果が得られました。以下はテスト内容と結果です。
キャッシュ
上限値
テキスト形式 HTML形式
読み込み フォント変換 スクロール 読み込み フォント変換 スクロール
1,000 58 78 39 56 36 42
4,000 10 7 39 14 12 36
10,000 6 4 39 10 7 36
12,000 6 4 39 9 9 37
16,000 6 4 39 9 9 36
20,000 6 4 39 9 9 36
40,000 8 4 39 10 10 36
80,000 7 3 36 10 10 36

 テストは約80kあるテキスト文書及びそれをHTML化したものを、それぞれポケットIEで読み込む場合に要する時間、フォント・サイズを変更するのに要する時間、スクロールに要する時間、を計測する方法を採りました。

 テスト結果からは、デフォルト「4,000」から「10,000」程度に上限値を引き上げた場合に明確にスピードアップが図られています。テキスト文書の読み込みでは読み込み時間が半分近くに短縮されました。同様にHTML文書でも30%程度の速度向上となりました。これは数値以上に体感的に速く感じられます。

 逆に、デフォルト値よりキャッシュ上限値を引き下げた場合、そのスピードが著しく低下してしまうことが判りました。「1,000」では使い物ならないくらい遅くなります。また、上限値を引き上げる場合でも、「16,000」以上に引き上げても、それに比例して速度が改善されるということはなく、「20,000」以上はむしろ計測数値が悪化してしまいました。この辺りは、ベンチマークで得られた数値と同様の結果となったようです。


4.結 論

 すでに多くの方が試されて効果が出ているチューニング方法ですが、今回のテスト結果から、フォント・キャッシュの引き上げで、表示速度の改善効果が得られることが改めて判りました。特に、画面上にテキストをびっしり表示するような作業で効果を体感できるようです。アプリケーションソフト自体の起動時間に変化はないのでしょうが、テキストの読み込み時間が大幅に短縮されるために、結果としてアプリケーション全体の起動が速くなるという感じを受けるのでしょう。

 ただ、キャッシュ値は単純に大きくすれば良いというものでもないようです。今回のテストでは、上限値が一定数値を越えると引き上げの効果が薄くなり、それ以上は悪化するという結果となりました。これは意外でしたが、他ユーザーの報告をみても上限値が20,000を越えるとシステムが不安定になるという事例もあるようですので、そういった影響が出ているのかもしれません。

 いずれにしても、十分な効果が得られる範囲で、できるだけ小さな値を設定するのが上手なチューニングと言えるみたいです。

【終わり】



追記
 レジストリを直接いじらずに、フォント・キャッシュの値を変更できるうれしいソフトがあることがわかりました。 SmallTweakという名前のフリーソフトだそうです。いつも参考にさせていただいているa Sigmania −シグマリオン鉄人への道−さんのBBSで紹介されていました。
 こちらの使用レポートはまたの機会にお伝えしたいと思います。





トップへ戻る


当HPは個人運営による非営利目的のサイトであり、いかなる団体にも属しておりません。
著作権上の問題があると判断された方はご連絡ください。速やかに対処いたします。
当HPに掲載されている内容に関するトラブル、損害については 一切責任を負えませんのでご了承下さい。
当HPの無断転載&使用を禁じます


意見・ご感想はこちらまでお願いします。
seagale@anet.ne.jp


[PR]女性が輝く公文の先生募集中!:全国で教室開設説明会開催