人気ブログランキング |
<   2009年 10月 ( 9 )   > この月の画像一覧
Windows7で気になる件 Part4(グラフィック描画メモ補足)
Windows7で気になる件 Part3(グラフィック描画メモ)の補足と実験です。

本記事のベンチマークは基本的に下記の環境で行っています。

CPU: Pentium4 530J(3.00GHz) HT有
Memory: 1536 MB(DDR333 PC2700 シングルチャネル)
マザーボード:GIGABYTE GA-8I915P PRO Rev2.0 (チップセット Intel 915P+ICH6チップセット)
GPU: NVIDIA GeForce 7600 GS
HDD: Seagate Barracuda LP ST31500541AS(ベンチマーク時に使用したディスク)
Display Mode: 1280 x 1024 32bit (ClearType)


■GeForceのドライババージョンによるGDIアクセラレータ検証(WindowsXP)
まず、前回の記事の最後のほうで 「GeForce 7までは2Dアクセラレーション回路がGPUにあったようで、ドライバ(XP)も2桁の頃は2Dアクセラレータに対応してたようです。」と書きましたが、これが実際ベンチマークでどれほど違うのかテストしてみました。

2Dアクセラレーションがきくであろう Windows XP で CrystalMark 2004R3 のGDI,D2D,OGLをテストしてみます。
比較したのは GeForce ドライバの 94.24 と 191.07 です。
結果はこんな感じ。
e0091163_19301626.jpg

やはり94.24バージョンのドライバのほうがGDIの値が高いですね。GPUによるアクセラレーションがきいているんだと思います。
OpenGLの値が 191.07 のほうが若干高いのは、まぁ誤差レベルかもしれませんが、新しいパッチだけに3Dに関するチューニングがなされたのかもしれません。


■Windows7にXPDMを入れてみる
次に、「Windows7に XP 用ドライバ(XPDM)を入れたら2D描画が高速化するのでは!?」ということを確かめるためにテストしてみました。
XP用ドライバはいったん、現在のドライバを削除してドライバインストーラの互換性でXPという風にごまかしたら入れれました。
こちらは XP用94.24 ドライバと XP用163.71 ドライバ、7用191.07(WDDM1.0) ドライバでテストしています。
e0091163_19303257.jpg

結果は予想していたものと大きく変わりました。
GDIは3つとも数百レベルの違いなので、誤差範囲です。よって、Windows7ではXP用ドライバ入れてもGDIはソフトレンダリングされてると考えるのが妥当のようです。

驚いたのが DirectDraw の結果です。XP用94.24→XP用163.71→7用191.07という順のスコアです。確かDirectDrawは DirectX8 時代にDirect3Dに統合されたとかいう話を聞いたことがあるような。。。
実際どんなシーケンスで処理してるのかまだ知らないので何とも言えませんが、Windows7からは Direct2D , DirectWrite を使ってねというのがMSの方針なんでしょうね。
OpenGL による3D描画ですが、XP用94.24では全く動作しませんでした。XP用163.71でもかろうじて動いていた程度です。3D描画性能はドライバが新しいほど真に能力を発揮するということかもしれません。

XP用ドライバ使ってると3Dアプリを使おうとするだけでブルースクリーンになります。(mv4_mini.sys で PAGE_FAULT_IN_NONPAGED_AREA と出るんでスワップがらみのエラーですかね。)
やはり、Windows7でXP用ドライバ使ってもメリットはほぼなく、逆に不安定になるだけということがわかりました。

XP用ドライバ入れたときの DirectX 診断ツールの画面をキャプしてみました。
e0091163_19305250.jpg

ドライバモデルが「不明」となっています。
Windows7でも問題なく動くXPDMドライバがあればいろいろ実験してみたかったんですが。。。


■Windows7でテーマによる描画性能の差があるか?
Windows7で Aeroの有無、DWMの有無で描画性能が変わるのかもテストしてみました。ドライバは7用191.07(WDDM1.0)です。
DWMは「Desktop Window Manager Session Manager」というサービスとして動いてるらしいので、これでDWMのOn,Offが調整できます。
e0091163_1931939.jpg

結果誤差レベルかもしれませんが、 GDI はAeroが若干スコアを伸ばし、OpenGLではAeroが若干スコアが伸び悩むという結果になりました。
7用ドライバ使う限り、AeroやDWMのオンオフにはあんまり左右されないようです。これがWDDM1.1ドライバならどうなるのか非常に興味深いところではありますが、GeForce 7600 にはWDDM1.1が存在しないので、残念。。。


■DWM(Desktop Window Manager)では実際どれくらいメモリ使われてる?
最後に、Windows7でテーマを Aero とベーシック(DWMサービスは有効で)で、DWMのメモリ(ワーキングセット)、CPU使用率を調査してみました。(WDDM1.0はウィンドウを持ってるプロセスとdwm.exeとの間で描画イメージをメモリ共有してるため、他プロセスとの共有メモリ空間も含めるワーキングセットで測定)
バッチファイルで notepad.exe をXGAサイズで50個開き、その後そのウィンドウを閉じたときの状態をパフォーマンスモニタで計測したものです。
まずは Aero での計測結果です。
e0091163_19312950.jpg


バッチ起動から50個開くまでのメモリ使用量がやはり半端ないです。
ただ400MBも使うってのは解せません。
XGAサイズ50個なので、1024px * 768px * 8byte(32bit) = 157,286,400 なので、本来メモリ食う筈なのは150MBくらいのはずです。
確かに50個開き終わった後は200MB強を保っているのでこれは納得です。
詳しくはわかりませんが、オーバーヘッドかバッチで一気に開いたためさらにバッファを確保したのかそんなところではないだろうかと思います。
いづれにせよ、AeroでWDDM1.0状態は Vista と同じくウィンドウ数とサイズによって激しくメモリ消費することは実証できました。

次はベーシックスタイルでの計測結果です。
e0091163_19314982.jpg

こちらはウィンドウを幾つ開いても dwm.exe が使うメモリはほとんど増えていません。(実際は数百K増えてましたが。。)
ただ、notepad 起動完了時にCPUを4割弱ほど使っているの気になります。
描画に関して、全くDWM非依存というわけではなさそうですが、メモリに関してはメインメモリにバッファすることはやめてるようです。


■ウィンドウドラッグ時の残像
ちなみに、このベーシックスタイルでウィンドウをドラッグしてみるとこんな感じになりました。
e0091163_1932942.jpg

残像がすごいことになっています。やはり、非アクティブなウィンドウは自前でレンダリングしてるんでしょうかね。ソフトウェアレンダリングの遅さも影響してるのかも。。

Aero 有効時に試してみるとこんな感じです。
e0091163_19322774.jpg

残像がないです。2D描画がベンチマーク上遅くなったと言え、こういう点ではWDDM1.0ドライバ使用時のDWMでもいい点ありますね。


Windows 7 UltimateWindows 7 ProfessionalWindows 7 Home Premium
by jehoshaphat | 2009-10-31 19:33 | 豆知識
Windows7で気になる件 Part3(グラフィック描画メモ)
前回のCrystalMarkでのWindows7ベンチマークでグラフィック関連、特に2Dがらみが異常にスコア低かった件の調査です。

調査してるうちに、2Dでの描画ってのはレスポンスに直結するのでかなり大事な部分ってことを今更ながら思い出しましたよ。


■XP時代のグラフィックアーキテクチャ(XPDM)
さて、Windows7の前にXP以前がどのように2D描画してたかです。
XP以前の時代のグラフィックアーキテクチャは 2DがGDI/GDI+、3DがDirect3Dで構成されてます。
XP時代のグラフィックドライバは XP Display Driver Model(XPDM もしくは XDDM)と呼ばれるもので、こちらもGDI用とDirectX用に分かれてるようですね。

制限多いかつ複雑仕様のGDIですが、APIから直にドライバへ、そしてGPUの2D用アクセラレータへ描画命令が流れるので高速で描画できます。
ちょうどAPIの構成としては下記の図のような感じです。
e0091163_22304682.jpg



■Vsita時代のグラフィックアーキテクチャ(WDDM1.0)
Vistaではグラフィックアーキテクチャが一気に変わりました。
API構成は下記の図のように変化します。
e0091163_22311015.jpg

この図を見てわかるように2Dも3Dもすべて DirectX を介して描画される仕組みになってます。
そのため、グラフィックドライバも新たに Windows Vista Display Model(WDDM) に対応したものとなります。
(この Vista リリース時の WDDM は初期バージョンなので、WDDM1.0 とも呼ばれるようです)

この描画機能の DirectX(Direct3D) への統合が弊害を生むことになります。

それは2D描画が異常に遅くなったということです。
なぜかというと、描画を Direct3D に統合したため GDI/GDI+ による描画がソフトウェアレンダリングされてから Desktop Window Manager(DWM) に送られるからです。(ソフトウェウェアレンダリングはCPUで描画します)

さらに、DWM への描画データの送り方にもひと癖あります。
いったんシステムメモリにCPUで描画したイメージを保存してから、DWM へ転送しているのです。
つまり、この方法だと、ソフトウェアレンダリングとシステムメモリからビデメモリ(VRAM)へのイメージ転送にコストがかかるのと、ソフトレンダリングの結果をシステムメモリ、VRAMの両方に同一の画像のコピーを持つので、共に膨大なメモリが必要になります。

また、XPDMではグラフィックドライバがカーネルモードだけでしたが、WDDMでは安定性を確保するためにドライバ内でユーザーモードとカーネルモードに分かれています。分かれたぶん、オーバーヘッドが発生しますよね。

なお、この描画シーケンスを図にしたものが下記です。
e0091163_22313234.jpg


ちなみに、システムメモリにバッファするので、ウィンドウを開くごとに DWM (と各exe)のメモリが増えていきます。
この辺はDWM による描画の現場を押さえる - NyaRuRuの日記で検証されてます。

確かに、この方法使うと従来のGDIに比べ、ウィンドウ再表示の WM_PAINT メッセージを処理してウィンドウ再表示する回数が減るのでCPU負荷の軽減やちらつき防止には役立つかもしれません。
しかし、GDIがソフトウェアレンダリングになるということは、GPUではなくCPUの性能が求められますよね。だからCPUが遅い低スペックマシンだと逆効果になって描画にもっさり感が出たんだと思います。
(ただし、VistaにおいてWDDM1.0に対応したドライバだけ上記のような描画シーケンスになるようです。WDDMに対応してないドライバでは従来通りのXPDMドライバとなるので、ハードウェアによるGDIアクセラレータが働きます。)

ここまでが XP , Vista でのグラフィック描画アーキテクチャです。
簡単にまとめると、XPDM(XP時代)のGDIがハードウェアで直に描画できてたのが、WDDM1.0(Vista時代)から(Direct3Dで出力するようになったため)GDIがCPUによるソフトウェアレンダリングになったため2D描画が遅くなった + 同一の描画イメージを2重に持つためメモリ食いになった というわけですね。

ここまでの話は下記サイトで詳しく説明されています。

Windows Vista での GDI/GDI+ 描画 - NyaRuRuの日記

今回の記事はほぼこちらのブログを参考にさせてもらってます。かなり詳しい考察です。
@IT:改良されたVistaの描画アーキテクチャ
Vistaアーキテクチャの基本動作と利点。
WDDM, DWM: pros and cons - NyaRuRuの日記
WDDM1.0とDWMのメリット、デメリット。
Vistaを買ってはいなけい理由: あるプログラマの手記
MS批判が過激ですが、中ほどくらいからVistaでのGDIについて書いてます。
[特集]Vista買うのはまだ早い!(1)グラフィックス編



■Windows7時代のグラフィックアーキテクチャ(WDDM1.1)
さて、Windows7ではグラフィックのアーキテクチャはどうなったんでしょうか?
グラフィックドライバモデルが、Vista時代にWDDM1.0だったのが WDDM1.1 になってます。
特に、Vistaで不評だったGDIの描画が改善されているようです。

まず、Vistaの時(WDDM1.0)のGDI描画は同一の画面のコピーをメインメモリとビデメモリ(VRAM)の両方に持っていました。
これが膨大なメモリを食いつぶしてましたが、Windows7(WDDM1.1)ではGDIアプリケーションはドライバ(GDIハードウェアアクセラレーションを使って)を経由して直にVRAMに描画できるようになりました。
これにより、GDIアプリケーションのウィンドウイメージをメインメモリに持たなくてすむので、メモリ使用量の軽減となります。
そして、ドライバ(とGPU)がGDIアクセラレーションを新たな形で実装したので、ソフトウェアレンダリングしてたWDDM1.0に比べ高速で描画できるようです。(といっても、XPDM時代に比べると、ドライバ内のGDIドライバファンクションの数は少ないためXP時代ほどまでに速くなるかどうか微妙らしいです。ここの詳細はGDI アクセラレーションについて整理する - NyaRuRuの日記に詳しく説明。)

いずれにせよ、WDDM1.1のドライバであれば、Vista時代のWDDM1.0に比べメモリ使用量の軽減と、GDI描画速度の回復というメリットがあるわけですね。

WDDM1.1ドラバでの描画シーケンスは下記のように感じだそうです。
e0091163_22323351.jpg



Window7ではDirectX10.1を採用してます。つまり、DWMで描画する際にもDirect3D 10.1のAPIを使ってるわけですね。
で、Direct3D 9時代のGPUを積んでる場合は、GPUに足りない機能をソフトウェアエミュレーションで実現してるようです。
さらに、WDDMに対応してないGPUでも Direct3D Warp10 という機能により Direct3D 10.1 の機能をすべてソフトウェアエミュレーションで処理することができるようです。
つまり、古いグラフィックカードだと余計にCPU負荷を食ってしまうようですね。

また、2D描画においてGDIに置き換わるものとして Direct2D と DirectWrite という新APIがサポートされたようです。
ただ、既存のアプリケーションがこれを利用するになるまでは結構時間がかかるかもしれません。(現状.Netで簡単にDirect2D,DirectWriteを呼び出す方法もなさそうですしね。)


Windows7でグラフィック周りがどう変わったかは下記のサイトを参考にさせてもらいました。
Windows 7 のグラフィックスの変更点を整理する - NyaRuRuの日記
XP,Vista時代のアーキテクチャ復習と、Windows7でどう変わったかを詳しく解説。特にアーキテクチャ図は参考になります。
Direct2D 入門 ≫ Blog Archive ≫ デバイスロスト&ドライバ
前半部分で解説。
Windows 7グラフィック性能改善、少ないメモリでも動作 | エンタープライズ | マイコミジャーナル
どうやらGDIグラフィック描画時のロックも変更した模様。これによりマルチコアCPU環境でGDIのパフォーマンスが上がるようです。
InfoQ: Windows 7のグラフィックスエンジンはVistaよりも優れたものになろうとしている
改善点が簡潔にまとめられてます。
ASCII.jp:DirectX 10.1をベースにするWindows 7 |あなたの知らないWindows
DirectX10.1がなぜDirectX9のグラボで動くのか説明。
ASCII.jp:Windows7で大幅に変わったグラフィックドライバー|あなたの知らないWindows
WDDM1.1の説明やGDIのロックに関する改善、WDDM1.0ではVistaと同じってことがまとめられてます。
@IT WDDM 1.1(Windows Display Driver Model 1.1)
WDDM1.1の説明で、2Dの描画処理もドライバ+GPUで高速化してることが書かれています。
Aero Glassを有効にすると2D描画性能がアップ -- 「WDDM 1.1」を整理する(2) - ZDNet Japan
WDDM1.0とWDDM1.1でのベンチマーク結果が載せられてます。やっぱWDDM1.1速いです。
【特集】すべてが分かるWindows 7大百科 (38) 第3章 Windows 7のユーザーインターフェース - パフォーマンスが改善されたDesktop Window Manager マイコミジャーナル
WDDM1.1でGDIアクセラレーションのサポートが書いてます。



3流PGPCの2Dが遅かった原因は?
さて、ここまでXP以前からVista,Windows7までのグラフィック描画に関することを書いてきました。
この知識を踏まえて、なぜ前回のCrystalMarkでのベンチマークで描画機能が低かったか、そしてXPより重く感じるのかの検証をしたいと思います。

Vista時代のWDDM1.0を使ったアーキテクチャでGDI描画は遅くなりました。
しかし、Windows7でWDDMが1.1になりだいぶ改善されました。ところが、これにはグラフィックドライバがWDDM1.1でないといけません。
では、ドライバWDDM1.1ではない場合、例えばWDDM1.0だとどうなるんでしょうか?
その場合は、WDDM1.0、つまりVista時と同じ描画アーキテクチャになるようです。さらに WDDM1.0でない場合は、XPDMドライバでも動くようWindows7はサポートされているようです。

3流PGの使ってるグラフィックボードは NVIDIA GeForce 7600GS です。
ドライバは最新のものを先日入れました。(バージョン191.07)

このドライバがXPDM,WDDM1.0,WDDM1.1なのかは「DirectX 診断ツール」を使えばわかります。(XPはシステム情報から見れたんだけどWindows7はファイル名を指定して実行で「dxdiag.exe」と入れないとだめなよう)
e0091163_22363276.jpg


上のSS見てわかるようにこのドライバはWDDM1.0を使ってるようです。
これゆえに3流PGのPCはGDI描画のレスポンスが遅いようです。
また、DDIが9Exとなっているように、Direct3D 9のGPUなので、DWMがDirect3D 10.1の足りない機能をソフトウェアエミュレートしてこともさらに遅くしてる要因になっているのかもしれません。


いずれにせよ、WDDM1.0を使ってることが原因だということがわかったので、NVIDIAがGeForce7x00用のWDDM1.1ドライバを出してくれるのを待つか、DirectX10.1対応ビデオカードを買うかしか解決策はなさそうです。(ドライバ出してくれるのかどうか分かりませんが。。4Gamer.netによると、GeForce 8以降じゃないとWDDM1.1じゃないみたいなこと書かれてますし。。)


と思っていると、Direct2DとGDIとDX10。 | ひねもす庵で面白い記述を見つけました。
GeForce 7までは2Dアクセラレーション回路がGPUにあったようで、ドライバ(XP)も2桁の頃は2Dアクセラレータに対応してたようです。
つまり、今のWindows7にXP用2桁のドライバを入れてみればいいわけです。XP用なので、おそらくXPDMドライバモデルでしょう。その場合、GDIがGPUの2Dアクセラレータを使うことができるので、GDI描画がXP相当になるじゃないかという考えです。(当然Aeroは使えなくなりますが。。)

上記の実験結果をWindows7で気になる件 Part4(グラフィック描画メモ補足)で書いてみました。

Windows 7 UltimateWindows 7 ProfessionalWindows 7 Home Premium
by jehoshaphat | 2009-10-28 22:42 | 豆知識
Windows7で気になる件 Part2(Windows7は本当に軽いのか?)
RC,RTM版を含めると4か月ほど Windows7 を使ってきた3流プログラマですが、自宅メインPC上だとどうもXPと比べると重い気がしてなりません。


ということで、XPと7でベンチマークを比較してみました。

Windows7を運用してるPCスペックは下記のとおりです。

CPU: Pentium4 530J(3.00GHz) HT有
Memory: 1536 MB(DDR333 PC2700 シングルチャネル)
マザーボード:GIGABYTE GA-8I915P PRO Rev2.0 (チップセット Intel 915P+ICH6チップセット)
GPU: NVIDIA GeForce 7600 GS
HDD: Seagate Barracuda LP ST31500541AS(ベンチマーク時に使用したディスク)
Display Mode: 1280 x 1024 32bit (ClearType)

基本構成は2005年当時のやつですね。


まずは、CrystalMark 2004R3でベンチマーク結果を比較してみました。
下記のような結果になりました。


┌────────┬─────┬────┬───┐
│ │WindowsXP │Windows7│性能比│
├────────┼─────┼────┼───┤
│ CrystalMark │54687 │38980 │71% │
├────────┼─────┼────┼───┤
│[ ALU ] │9171 │8667 │95% │
├────────┼─────┼────┼───┤
│[ FPU ] │9907 │8272 │83% │
├────────┼─────┼────┼───┤
│[ MEM ] │5251 │4717 │90% │
├────────┼─────┼────┼───┤
│[ HDD ] │6042 │5848 │97% │
├────────┼─────┼────┼───┤
│[ GDI ] │4871 │2602 │53% │
├────────┼─────┼────┼───┤
│[ D2D ] │2386 │1323 │55% │
├────────┼─────┼────┼───┤
│[ OGL ] │17059 │7551 │44% │
└────────┴─────┴────┴───┘



下記図は上記のCrystalMarkでの各項目を、WindowsXP でのスコアを100%とした場合の Windows7 の性能比のグラフです。
e0091163_212294.jpg


この結果だと、Windows7はXPに比べて予想以上にスコアが低くなってます。
整数演算、浮動小数点演算、メモリ、HDDアクセスが 5 ~ 15%遅いですが、特に気になるのはグラフィック関連です。どれもXPの半分かそれ以下となっています。

Aero切るとかわるかな と思って、Aero無効でもベンチマークしてみましたが、特に結果は変わりませんでした。


次に、3DMark06 で比較してみました。


┌──────┬─────┬────┬───┐
│ │WindowsXP │Windows7│性能比│
├──────┼─────┼────┼───┤
│3DMark Score│2050 │1931 │94% │
├──────┼─────┼────┼───┤
│SM 2.0 Score│865 │811 │94% │
├──────┼─────┼────┼───┤
│SM 3.0 Score│774 │763 │99% │
├──────┼─────┼────┼───┤
│CPU Score │822 │699 │85% │
└──────┴─────┴────┴───┘


3Dグラフィック性能は数%の低下ですが、CPUのスコアがちょっと低いです。

-------------------------------------------
2009/10/31 追記

PCMark05でもXPとWindows7比較してみました。
なおWindows7の測定時、Aeroだと3D関係が動かず、クラシックだと2DTransportがだめだったので、ベーシックでDWMオンの環境で測定しています。

┏━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━┳━━━┓
┃GPUドライババージョン ┃191.07 ┃191.07 ┃性能比┃
┣━━━━━━━━━━━━━━━━╋━━━━━━━━╋━━━━━━━━━━╋━━━┫
┃OS(テーマ) ┃WindowsXP ┃Windows7(Baci,DWM有)┃ ┃
┣━━━━━━━━━━━━━━━━╋━━━━━━━━╋━━━━━━━━━━╋━━━┫
┃PCMark Score ┃3021 ┃2279 ┃75% ┃
┣━━━━━━━━━━━━━━━━╋━━━━━━━━╋━━━━━━━━━━╋━━━┫
┃HDD - XP Startup ┃7.11 MB/s ┃5.02 MB/s ┃71% ┃
┣━━━━━━━━━━━━━━━━╋━━━━━━━━╋━━━━━━━━━━╋━━━┫
┃Physics and 3D ┃102.66 FPS ┃67.7 FPS ┃66% ┃
┣━━━━━━━━━━━━━━━━╋━━━━━━━━╋━━━━━━━━━━╋━━━┫
┃2D - Transparent Windows ┃439.43 Windows/s┃90.46 Windows/s ┃21% ┃
┣━━━━━━━━━━━━━━━━╋━━━━━━━━╋━━━━━━━━━━╋━━━┫
┃3D - Pixel Shader ┃115.53 FPS ┃111.0 FPS ┃96% ┃
┣━━━━━━━━━━━━━━━━╋━━━━━━━━╋━━━━━━━━━━╋━━━┫
┃Web Page Rendering ┃2.05 Pages/s ┃0.96 Pages/s ┃47% ┃
┣━━━━━━━━━━━━━━━━╋━━━━━━━━╋━━━━━━━━━━╋━━━┫
┃File Decryption ┃55.29 MB/s ┃49.54 MB/s ┃90% ┃
┣━━━━━━━━━━━━━━━━╋━━━━━━━━╋━━━━━━━━━━╋━━━┫
┃2D - Graphics Memory - 64 Lines ┃856.58 FPS ┃712.15 FPS ┃83% ┃
┣━━━━━━━━━━━━━━━━╋━━━━━━━━╋━━━━━━━━━━╋━━━┫
┃HDD - General Usage ┃2.72 MB/s ┃2.94 MB/s ┃108% ┃
┣━━━━━━━━━━━━━━━━╋━━━━━━━━╋━━━━━━━━━━╋━━━┫
┃Audio Compression ┃810.25 kB/s ┃651.9 kB/s ┃80% ┃
┣━━━━━━━━━━━━━━━━╋━━━━━━━━╋━━━━━━━━━━╋━━━┫
┃Video Encoding ┃160.38 kB/s ┃154.03 kB/s ┃96% ┃
┣━━━━━━━━━━━━━━━━╋━━━━━━━━╋━━━━━━━━━━╋━━━┫
┃Text Edit ┃37.58 Pages/s ┃31.51 Pages/s ┃84% ┃
┣━━━━━━━━━━━━━━━━╋━━━━━━━━╋━━━━━━━━━━╋━━━┫
┃Image Decompression ┃10.74 MPixels/s ┃10.07 MPixels/s ┃94% ┃
┣━━━━━━━━━━━━━━━━╋━━━━━━━━╋━━━━━━━━━━╋━━━┫
┃File Compression ┃2.25 MB/s ┃2.05 MB/s ┃91% ┃
┣━━━━━━━━━━━━━━━━╋━━━━━━━━╋━━━━━━━━━━╋━━━┫
┃File Encryption ┃17.84 MB/s ┃12.79 MB/s ┃72% ┃
┣━━━━━━━━━━━━━━━━╋━━━━━━━━╋━━━━━━━━━━╋━━━┫
┃HDD - Virus Scan ┃38.36 MB/s ┃28.03 MB/s ┃73% ┃
┣━━━━━━━━━━━━━━━━╋━━━━━━━━╋━━━━━━━━━━╋━━━┫
┃Memory Latency - Random 16 ┃5.66 MAccesses/s┃6.15 MAccesses/s ┃109% ┃
┗━━━━━━━━━━━━━━━━┻━━━━━━━━┻━━━━━━━━━━┻━━━┛

XPを100%とした Windows7 の性能比をグラフにするとこんな感じです。
e0091163_19264450.jpg

2DとWEBのレンダリングがかなりスコアを落としているのがわかります。
-------------------------------------------

たしかに、実際いろいろなアプリケーション動かしてると、XPより遅く感じることが多いんですよね。
特にブラウザでタブを大量に開いたときは描画がものすごく遅くなります。
動画再生も解像度によっては結構辛かったりしますね。

ちなみに、Windows7 エクスペリエンスインデックスのスコアは下記のような感じです。
CPU,メモリ共に4.2ということですが、やっぱ快適に動かすには6以上は欲しいところですね。
e0091163_224174.jpg



試しに、Windows Server 2008動かしてるサーバ機で Hyper-V 上でWindowsXPとWindows7を比較してました。
(ついでに、ホストOS上でもベンチマークしてみました。)
環境はこんな感じ。


CPU: Xeon E3110(3.00GHz)
Memory: 4085 MB(DDR2800 PC6400 デュアルチャネル)
マザーボード: GIGABYTE GA-G33-DS3R(チップセット Intel G33+ICH9Rチップセット)
GPU: Intel GMA 3100(オンチップ)
HDD: Hitachi Deskstar P7K500 HDP725050GLA360(ベンチマーク時に使用したディスク)
Display Mode: 1024 x 768 32bit (ClearType)

結果はこんな感じです。


┌────────┬───┬─────┬────┬───────┐
│ │ホスト│WindowsXP │Windows7│XPと7の性能比 │
├────────┼───┼─────┼────┼───────┤
│ CrystalMark │188260│69529 │120757 │174% │
├────────┼───┼─────┼────┼───────┤
│[ ALU ] │27978 │11018 │13343 │121% │
├────────┼───┼─────┼────┼───────┤
│[ FPU ] │51605 │11709 │12017 │103% │
├────────┼───┼─────┼────┼───────┤
│[ MEM ] │79877 │17212 │16094 │94% │
├────────┼───┼─────┼────┼───────┤
│[ HDD ] │10339 │25856 │66772 │258% │
├────────┼───┼─────┼────┼───────┤
│[ GDI ] │11047 │1335 │2350 │176% │
├────────┼───┼─────┼────┼───────┤
│[ D2D ] │4588 │1684 │9142 │543% │
├────────┼───┼─────┼────┼───────┤
│[ OGL ] │2826 │715 │1039 │145% │
└────────┴───┴─────┴────┴───────┘



下記図は上記のCrystalMarkでの各項目を、ホストOS(Windows Server 2008) でのスコアを100%とした場合の XP と Windows7 の性能比のグラフです。
e0091163_231534.jpg

HDDやD2Dの値が、ホスト環境を超えるという異常な値もいくつかあるので、あまり参考にならないデータですが、全般的に XP よりも Windows7 のほうがスコアが高いです。
(と言っても、実機上のホストOSに比べるとやっぱり遅いですね。)
これは、Hyper-Vクライアントの統合サービスが関係してるのかもしれません。XPはインストール後手動で入れてやらないといけませんが、Windows7はどうやらVMBus用のドライバが元から入ってるっぽいです。
ベンチマークスコアはドライバに依存する度合いが高いということですかね。


メインでWindows7使ってるPCは、CPU,マザー,メモリなどの基本構成が4-5年ほど前の製品で、ドライバもWindows7用ではなく XP や Vista のものを無理やり詰め込んでるやつもあるんで、その影響もあるのかもしれません。(Vista用ならほぼ問題ないと思うんですがね。。。)

ネットでいろいろベンチマーク結果見てるとXPより速い結果が多いですが、その多くは比較的最近の高速なマシンです。
やはり、XPより安定した快適さを求めるならここ最近のハードでWindows7対応用ドライバがあるものに一新しないといけないのかもしれません。

さて、CrystalMarkで非常にスコアが低かったグラフィック関連ですが、これにはどうやらワケがあるようです。
ということで、いろいろ調べてみたんで、結果はまた後日。。

(てか、なぜエキサイトブログはtableタグが使えない。。)



Windows 7 UltimateWindows 7 ProfessionalWindows 7 Home Premium
by jehoshaphat | 2009-10-28 02:05 | 豆知識
Windows7で気になる件 Part1(ライブタスクバープレービュー)
いよいよ今日の0時をもって発売されたWindows7。

かなり期待は大きいようですが、2か月ほどRTM版を使ってていくつか気になる点があったので、ちょこちょこ書いていく予定です。


まず新機能のライブタスクバープレービューです。
Aero有効時にタスクバーでウィンドウのサムネイル表示と、サムネイルをマウスオーバーすると、他のウィンドウを透明化して、マウスオーバーしたウィンドウのみ表示するってやつです。

普通に動いてたら↓な感じです。
e0091163_1415874.jpg


ところが、ウィンドウを最小化して、フルスクリーンのアプリケーション(ゲームとか)を起動し、終了するとサムネイルが表示されなくなり、アイコン表示だけになります。マウスオーバーしてもアイコンだけですね。
こんな感じです。
e0091163_1422017.jpg


ウィドウをアクティブにするとちゃんとサムネイル表示されるようになります。(つまり、アクティブにしない限り、サムネイルがアイコン表示になったままになってしまう)
たぶん、サムネイルのバッファかなんかがスワップか消えるかなんかしてるんでしょうね。


あと、3流PGはデュアルディスプレイで片方にフルスクリーンでMediaPlayerやTVなど表示してるんですが、もう片方のディスプレイでウィンドウ切り替え時にライブタスクバープレービューが作動し、フルスクリーンウィンドウまでもが透明化してしまうのが残念です。
せめて、フルスクリーンウィンドウだけはライブタスクバープレービューが作動しないようにできないもんでしょうか。。。

Windows 7 UltimateWindows 7 ProfessionalWindows 7 Home Premium
by jehoshaphat | 2009-10-22 01:45 | 豆知識
プリンタのカラーがおかしくなった
プリンタ(Canon MP610)でカラー文書を印刷すると、カラーの部分が黒がまじった感じになって印刷されちゃいました。

とりあえず、ノズルチェックパターン印刷をしてみたらこうなりました。
e0091163_18302534.jpg


イエローが黄緑に、マゼンダもちょっと黒みがかってます。
黒インクがもれてイエローやマゼンダのヘッダを侵食したと思われます。

最悪、ヘッド交換(キャノン製はこれができるのがいい)が必要かと思いましたが、強力クリーニングしたら、治りました。
下記はクリーニング後のノズルチェックパターンです。
e0091163_18304549.jpg


忙しい時に急にこうなるとホント勘弁してほしくなりますね。
by jehoshaphat | 2009-10-12 18:31 | ハードウェア
HDDが読み取り専用に。。。。
自宅の Windows Server 2008 がなぜかクラッシュしたんで再起動すると Hyper-V 上の仮想マシンが立ち上がらなくなりました。
書き込みができないとか言っています。
で、イベントログ見るとこんな感じになってました。

'CentOS': アタッチメント 'E:\Hyper-V HDD\CentOS.vhd' を開けませんでした。
エラー: 'このメディアは書き込み禁止になっています。' (0x80070013)。(仮想マシン xxxxxx)

エクスプローラからはEドライブ見えますが、確かにファイルを書き込もうとするとエラーになります。(参照はできます。)
アクセス権は調べてみましたが問題ありません。

次に「ディスクの管理」をのぞいてみたらどんぴしゃでした。
EドライブのHDDが読み取り専用になっています。
e0091163_2094886.jpg

いったんディスクをオフラインにして、再度オンラインにすると読み取り専用の表示消え、この状態で仮想マシン起動すると問題なく起動しました。
e0091163_20105553.jpg

何回かこのディスクをオフライン、オンラインを繰り返したところ、2,3回に1回は読み取り専用になってしまっています。

なぜそうなるのかいろいろ検討してみましたが、結局わかりませんでした。
ただ、このディスクは IDE(パラレルATA) で、サウスブリッジ(ICH9R)直結ではなくマザーボードメーカーの用意してるIDE用チップを経由してます。(ICH9Rが IDE 非サポートのため)
ICH9R → PCI Express Bus → GIGABYTE SATA2 → IDE Channel という経路になってます。
で、PCI Express を通すためディスクがOSからは SCSI として認識されてるんですよね。
これが原因とは思いませんが、なんかすっきりしません。
e0091163_20111933.jpg


最初、BIOSのAHCI有効の設定かと思いましたが、問題のディスクはIDEでICH9Rじゃないので関係ないんですよね。
余談ですが、OSやファイルサーバのデータが入ってるディスクは SATA300(SATA2) だったんで、AHCIモードにするとNCQとかで若干転送速度が速くなるようです。
by jehoshaphat | 2009-10-07 20:12 | ハードウェア
いつのまにやらMS製無料セキュリティソフトが公開
Microsoftの無料セキュリティソフト:「Microsoft Security Essentials」はインストールすべきか? - ITmedia News


しばらくネットチェックしてないうちに、MSが無料のセキュリティソフト Microsoft Security Essentials を公開してたようです。

仮想マシン上のクライアントOSとか評価環境用として使えそうですね。

ただ、対応OSがWindows XP,Vista,7 のようですが、サーバOSに対応しないのが残念でなりません。
今自宅サーバに使ってる Windows Server 2008 はアンチウイルス対策で NOD32 v2.7 を使ってますが、こいつのサポートが今年いっぱいのようなのです。
後継の v3 はサーバOSに対応しないようなので困ってます。
ただ、ここによると、ウイルスバスター16.10 はOKみたいなので、OEMである(フレッツ光プレミアムについている)セキュリティ対策ツールでいけるかもしれませんね。

あと、ZDNET:「Security Essentials」か「Forefront」、Windowsユーザーはどちらを選択すべきか?見るとMS製セキュリティ製品として、Forefront Client Security というものもあるようです。
この製品の2010年版は Windows Server 2008 R2 にも対応してるらしいで、R2にアップグレードしてからこれ使うのもいいですね。ただ、有償らしいです。。。。
by jehoshaphat | 2009-10-06 22:57 | 思ったこととかニュースとか。。
(ネットワーク)FWのせいでファイルサーバにアクセスできなくなった
自宅LANで Windows7 のメインPCから Windows Server 2008 のファイルサーバの共有フォルダへのSMBアクセスができないっていう状況が発生してます。
で、FW(ESET Smart Security4)を切るとアクセスできます。

どうやら ESET Smart Security4 のファイアウォールが原因っぽいです。
ESET のルール/ゾーンを見直しましたが特におかしなルールは見当たりません。

ping も通らなくなるので、ファイルサーバへの通信すべてが遮断されてるっぽいです。


とりあえずパケットキャプチャ(Wireshark)でレスポンスパケットが来てないかどうか確認してみることにしました。

wireshark-win32-1.2.2.exe をインストールをインストールするとき "Install WinPcap?" で WinPcap を一緒に入れようとしたんですが、Windows7 には対応してないと怒られます。
ググると、絶対無糖: Windows 7 RC 64-bit で Wireshark をインストールしてみたで、WinPcap を別でインストールし、その時に互換モードで Windows Vista にするといけるとあったので、その方法に従って WinPcap → WireShark をインストール。

エクスプローラでアドレスバーに "¥¥サーバ名" でファイルサーバにアクセスしたときのパケットですが、IPv6のLLMR→IPv4でのLLMR→NBNSという順序で名前解決を試みてるようです。

で、サーバからの応答パケットは全然返ってきてません。
pingの応答パケットも同じです。

どうやら、ファイルサーバからのパケットをパケットをことごとく破棄してるようです。


ESET Smart Security4 のログを見てみたら下記のようになってました。
e0091163_0492853.jpg

どうやら LLMNR によるパケット応答がポートスキャン攻撃とみなされているようです。
(LLMNRについてはクライアントコンピュータの名前解決構成を参照)

確か大抵のパーソナルファイアウォールは攻撃あったホストは一定期間アクセスを拒否するみたいな機能があったと思うので ESET にもそれがないか調べてみると、ビンゴでした。
e0091163_050034.jpg

"IDSと詳細オプション" の所に "攻撃を検出したら安全ではないアドレスを遮断" ってのがあります。
それから、"UDPポートスキャン攻撃を検出" ってのもあります。

これから察するに、ファイルサーバからの LLMNR 応答パケットをポートスキャン攻撃と判断。→ファイルサーバのアドレスを攻撃ホストとして登録され、ファイルサーバからのパケットを一切捨てる。
みたいな動きになってたんだと思います。

ただこの "攻撃を検出したら安全ではないアドレスを遮断" は再起動すると攻撃元ホストのリストもリセットされるっぽいですね。

問題なのは何かのタイミングで LLMNR がポートスキャンと勘違いされることですよね。
とりあえず、"UDPポートスキャン攻撃を検出" のチェックを外すことで対応しておきました。
ポートスキャンされたところで実害はないですからね。

しかし ESET には Firefox のアドオンインストールでもやられましたし、利用者のスキルを試すセキュリティソフトですね。

ESET Smart Security V4.0
by jehoshaphat | 2009-10-02 00:52 | ネットワーク
MediaMokeyが起動直後にクラッシュ
失業中ということで時間あいたんで、よーやく Windows7 のメインPCにいろいろソフトをインストールしてます。

で、音楽再生に使ってるのが MediaMokey(3.1.1.1261) というソフトなんですが、インストール後アプリ起動時に MediaMokey がクラッシュして落ちる事態が発生しました。

とりあずイベントビューアみるとこんなログが。。

障害が発生しているアプリケーション名: MediaMonkey.exe、バージョン: 3.1.1.1261、タイム スタンプ: 0x2a425e19
障害が発生しているモジュール名: QTCF.dll_unloaded、バージョン: 0.0.0.0、タイム スタンプ: 0x4aa21f2c
例外コード: 0xc0000005
障害オフセット: 0x7204c11b
障害が発生しているプロセス ID: 0x10d0
障害が発生しているアプリケーションの開始時刻: 0x01ca42745e6adcc9
障害が発生しているアプリケーション パス: C:\Program Files\FreeSoft\Multimedia\Player\MediaMonkey\MediaMonkey.exe
障害が発生しているモジュール パス: QTCF.dll
レポート ID: aba846fa-ae67-11de-8b77-000fea6aa48d

なんか DLL 内部で落ちてるっぽいです。

MediaMonkeyのフォーラムで探してみると対処方法がわかりました。

MediaMonkey インストールフォルダの \Plugins\d_iPhone.dll を削除するなり、拡張子変更するなりすればいいようです。
詳しい現象の原因がわからないのでしっくりきませんが、とりえあずこの方法で問題なく起動するようになりました。
by jehoshaphat | 2009-10-02 00:39 | 豆知識