Navigation Log - なびろぐ -
2003/02/16

...X680x0 spirit inside...

この日記はGNSで生成しています。
この日記の画像はOPTPiX webDesigner Ver.4で生成しています。

hauN
Go amazon.co.jp

■ご注文リストから■ [一覧]
■Amazonギフト券■ [購入]
玄人志向 セレクトシリーズ mSATA SSD SATA変換アダプター KRHK-MSATA/S7 []
玄人志向 セレクトシ...
Amazonほしい物リスト


2003/02/16 (日)

べんち

_ 焼きベンチでひとつ書き忘れがあったので、補足。

_ Windows全体でときどき発生する現象なのだが、「単一スレッドでずっとBitBltし続けていると、内蔵タイマーの更新が追いつかなくなることがある」という不具合が発生することがある。つまり、


DWORD start, count;
start = GetTickCount();
count = 0
while ( GetTickCount() < start+10000 ) {
    BitBlt(...);
    count++;
}

_ は「10秒間BltBltし続ける」という処理だが、これが「10秒で終わらない」ということが発生する*1、というわけ。10秒で測るところが20秒動いてたら倍の値になるのは当然。それどころか、下手すると永久に終わらなくてリセットする羽目になることすらある。

_ 多くのベンチマークプログラムで「単純なビットマップ転送の能力を測る」というテストが実装されていないのは、おそらくこのため。ちなみにわしが最近よく使うCrystalMark開発履歴の「2002/9/16: 0.6.15.X」に「GDI4(BitBlt) テストは一部の環境で致命的な問題を起こすことがあるため廃止」という項目があるのはこれだろうし、HDBENCHでグラデーションバーがスクロールするテスト項目で「いつまでたってもテストが終わらない」という経験のある人がいるのもこのためだと思う。

*1: このコード、このまま使うと「49日問題」にひっかかるので注意。


[URL] [View Log()] [Trackback]
Name: Comment:



メールはこちらへ...[後藤浩昭 / Hiroaki GOTO / GORRY / gorry@hauN.org]

「表紙へ戻る」
「会議室」 「最新版」 「なびろぐindex」 「GNSソースを読む」