2010/8/22:本掲示板は閲覧専用です。データが一部破損しておりますがご了承ください。
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃ホーム  
23 / 376 ツリー ←次へ | 前へ→

【2256】DiskBench.cppのsplit変数 やま 08/1/13(日) 6:24
【2257】Re:DiskBench.cppのsplit変数 ひよひよ 08/1/13(日) 9:53
【2258】Re:DiskBench.cppのsplit変数 ひよひよ 08/1/13(日) 15:43
【2259】Re:DiskBench.cppのsplit変数 やま 08/1/13(日) 23:20
【2267】CrystalDiskMark 2.1 リリースのお知らせ ひよひよ 08/2/2(土) 14:42
【2268】Re:CrystalDiskMark 2.1 リリースのお知らせ えむけい 08/2/2(土) 22:46
【2269】Re:CrystalDiskMark 2.1 リリースのお知らせ ひよひよ 08/2/2(土) 23:15
【2270】Re:CrystalDiskMark 2.1 リリースのお知らせ やま 08/2/3(日) 12:06
【2271】Re:CrystalDiskMark 2.1 リリースのお知らせ ひよひよ 08/2/3(日) 12:21

【2256】DiskBench.cppのsplit変数
←back ↑menu ↑top forward→
 やま  - 08/1/13(日) 6:24 -

引用なし
パスワード
   CrystalDiskMarkで、テストサイズ500MBでの512KB Random Writeが
やたら遅いのが気になって調べてます。が、これと関係ない話です。

CrystalDiskMark1.0のDiskBench.cppの372行目で、4KBのランダム
アクセスのための領域の個数を
    split = 64 * (DiskTestSize / 1024 / 1024);
で決めていると理解したのですが、ここは64ではなくて256でないと、
多くてもテストファイルの1/4しか使わないのではないでしょうか。
(1MBあたりの4KB領域の個数が入るべきという理解です)

理解が間違っていたらすみません。よろしくお願いいたします。

【2257】Re:DiskBench.cppのsplit変数
←back ↑menu ↑top forward→
 ひよひよ  - 08/1/13(日) 9:53 -

引用なし
パスワード
   ▼やまさん:
>CrystalDiskMark1.0のDiskBench.cppの372行目で、4KBのランダム
>アクセスのための領域の個数を
>    split = 64 * (DiskTestSize / 1024 / 1024);
>で決めていると理解したのですが、ここは64ではなくて256でないと、
>多くてもテストファイルの1/4しか使わないのではないでしょうか。
>(1MBあたりの4KB領域の個数が入るべきという理解です)
仰るとおりです。確かにテストファイルの前半 1/4 しか利用しないことになります。

ご指摘を受けなければ永遠にこのままのところでした。ご報告誠にありがとうございました。

今検証している限りでは、HDD の落ち込みはすごいものが…デフォルトの 50MB テストだと前半の 12.5MB しか使わないことになっていた上に、HDD のバッファーサイズは 8MB/16MB が一般的と。USB メモリではそれほど大きな変化がない?ような感じです。

今回の修正は、今までの測定結果にも大きな影響を与えることになるので、2.0 としてリリースしたいと思います。バグ修正だけではありますが、1.1 ではアップデートの必要性を感じない方や海外の転載サイトで差し替えてくれないところが多くなりそうなので。

既に色々なところで使われていることを考えると今までのバグで一番致命的(影響が大きい)かも。これから、CrystalDiskMark 1.x の 4KB ランダムテストにバグがあることの周知方法の検討などを行いたいと思います。

【2258】Re:DiskBench.cppのsplit変数
←back ↑menu ↑top forward→
 ひよひよ  - 08/1/13(日) 15:43 -

引用なし
パスワード
   修正版をリリース致しました。
詳細:http://crystaldew.info/2008/01/13/crystaldiskmark-200/

> やまさん
この度はご報告ありがとうございました。

【2259】Re:DiskBench.cppのsplit変数
←back ↑menu ↑top forward→
 やま  - 08/1/13(日) 23:20 -

引用なし
パスワード
   ▼ひよひよさん:
>修正版をリリース致しました。

修正おつかれさまでした。これからもよいベンチマーク
ソフトを作っていってください。

【2267】CrystalDiskMark 2.1 リリースのお知らせ
←back ↑menu ↑top forward→
 ひよひよ  - 08/2/2(土) 14:42 -

引用なし
パスワード
   ▼やまさん:
>CrystalDiskMarkで、テストサイズ500MBでの512KB Random Writeが
>やたら遅いのが気になって調べてます。が、これと関係ない話です。
今更ですが、原因がわかりました。

大きいファイルを設定した場合、SetFilePointer() + WriteFile() に数秒時間がかかることがあることが判明しました。やまさんがおっしゃる 500MB で Random Write が遅い原因は、測定時間の 6 秒のうちほとんどが何らかの処理待ちで占有されているのが理由のようです。

CrystalMark 2004R2 のソースコードと比較しながら原因を追究したところ、

CreateFile に渡すオプションが OPEN_EXISTING ではなく、CREATE_ALWAYS になっていることに気がつきました。恐る恐るオプションを変更すると…

治りました。恐ろしいぐらいに。

先日レポートいただいた時点でこちらの原因も追究していれば良かったのですが…。
50MB/100MBの場合は、それほど影響がないようです。

なぜ、必要もないのに CREATE_ALWAYS を設定したのか今となっては理由はわかりません。ただ、ベンチマークに使用するファイルを CREATE_ALWAYS で開いてはいけないということは良くわかりました。いわゆる後の祭り

先月 2.0 をリリースしたばかりなので、今回は 2.1 として準備が出来次第リリースする予定です。本当は 3.0 の方が良いんでしょうけど。というか、こんなのバージョンアップじゃないし orz

責任の重さをヒシヒシと感じてしまいます。ベンチマークなのに結果が信頼に値しないなんて…

【2268】Re:CrystalDiskMark 2.1 リリースのお知ら...
←back ↑menu ↑top forward→
 えむけい  - 08/2/2(土) 22:46 -

引用なし
パスワード
   ▼ひよひよさん:
>何らかの処理待ち
SetFilePointerした位置までのゼロ埋めですね。CREATE_ALWAYSだといったんファイルサイズがゼロになるので。

【2269】Re:CrystalDiskMark 2.1 リリースのお知ら...
←back ↑menu ↑top forward→
 ひよひよ  - 08/2/2(土) 23:15 -

引用なし
パスワード
   ▼えむけいさん:
>▼ひよひよさん:
>>何らかの処理待ち
>SetFilePointerした位置までのゼロ埋めですね。CREATE_ALWAYSだといったんファイルサイズがゼロになるので。
コメントありがとうございます。
そういうことでしたか。シーケンシャルアクセスでは特に変化がなかったのはそういうことなのですね。ファイルサイズが小さいときは影響があまりなかった理由も納得です。

CrystalMark 2004R2 のコードをほとんど流用していたにもかかわらず、このような事態を招いてしまい情けない限りです。

CREATE_ALWAYS を指定したときの動作も今更ながら理解しました。

【2270】Re:CrystalDiskMark 2.1 リリースのお知ら...
←back ↑menu ↑top forward→
 やま  - 08/2/3(日) 12:06 -

引用なし
パスワード
   ▼ひよひよさん:
>▼やまさん:
>>CrystalDiskMarkで、テストサイズ500MBでの512KB Random Writeが
>>やたら遅いのが気になって調べてます。が、これと関係ない話です。
>今更ですが、原因がわかりました。

調べていただいてありがとうございます。
ソースを見てもおかしなところはないので、OSの問題と思って、
ファイルI/O関係のレジストリ設定を調べているところでした。
(私は、CREATE_ALWAYSは「ファイルがなければ作る」ぐらいに
 しか思わなくて、ちゃんと意味を調べていませんでした (^^;)

これでもやもやとしていたものが晴れてすっきりしました。

【2271】Re:CrystalDiskMark 2.1 リリースのお知ら...
←back ↑menu ↑top forward→
 ひよひよ  - 08/2/3(日) 12:21 -

引用なし
パスワード
   ▼やまさん:
>▼ひよひよさん:
>>▼やまさん:
>>>CrystalDiskMarkで、テストサイズ500MBでの512KB Random Writeが
>>>やたら遅いのが気になって調べてます。が、これと関係ない話です。
>>今更ですが、原因がわかりました。
>
>調べていただいてありがとうございます。
とんでもない。私が蒔いた種ですから。
ご指摘を受けながら調査が遅くなってしまい申し訳ないです。

一応今回の修正でようやくまともに動くようになったと思います。正式版リリースから一年近くも経ってますけど…

23 / 376 ツリー ←次へ | 前へ→
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃ホーム  
ページ:  ┃  記事番号:   
48269
(SS)C-BOARD v3.8(とほほ改ver2.1) is Free