• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:RAID0に高速で書き込む方法(補足2))

高速なRAID0のデータ書き込み方法とは?

このQ&Aのポイント
  • RAID0のデータ書き込み方法について教えてください。
  • ディスクにデータを書き込む際に高速化する方法はありますか?
  • データ書き込みの効率を上げる方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#30727
noname#30727
回答No.2

FILE_FLAG_NO_BUFFERING でと書いたてしまったので、試してみました。 基本的にMFCは使ってないのと、汚いのは見ないフリでお願いします。 無理なスワップが無いので、安定している感じですが、こちらの環境では、速度は気持ち上がった程度。 int aboutSize = 100000000; int bytesPerSector = 1024; // ダミー int unitSize = bytesPerSector * 64; int loopCount = aboutSize / unitSize; int fileSize = loopCount * unitSize; HANDLE file = CreateFile(path, GENERIC_WRITE, 0, NULL, CREATE_NEW, FILE_FLAG_NO_BUFFERING | FILE_FLAG_SEQUENTIAL_SCAN | FILE_FLAG_DELETE_ON_CLOSE, NULL); char *buff = new char[unitSize + bytesPerSector]; char *addr = (char*)((DWORD64)(buff + bytesPerSector - 1) & ~(DWORD64)(bytesPerSector - 1)); DWORD written; DWORD begin = GetTickCount(); for (int pos = 0; pos < fileSize; pos += unitSize) { WriteFile(file, addr, unitSize, &written, NULL); } DWORD period = GetTickCount() - begin; delete[] buff; CloseHandle(file); char text[128]; wsprintf(text, "%d MB/sec", pos / period / 1000); MessageBox(NULL, text, "Statistics", MB_OK);

kosyoudai
質問者

お礼

ありがとうございました。 まだ、新しい環境が準備できていませんが、それができたら試させていただきます。 また、この掲示板の初心者なので、教えて欲しいのですが、回答をいただいた方にポイントを発行するのは、回答を締め切るときの、確か、良回答、次点のようなラジオボタンを選択すればよいのでしょうか? このお礼を書いている段階では、ポイントを発行する手段が無いように思います。 初歩的な質問でごめんなさい。

すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#30727
noname#30727
回答No.3

OK Web の方はわかりませんが、教えて!gooでは、締め切る時のラジオボタンでポイント発行するはずです。 ランキング入りを目指している人だと、ポイント無しはガッカリするかもしれませんね(笑)

すると、全ての回答が全文表示されます。
noname#30727
noname#30727
回答No.1

最初に実行したときはかなり遅かったですが、何度か試してみると落ち着いてくるようです。 45078 ms for 2000MB しかし、このアクセスの仕方だと、バッファリングでメモリを食いつぶしてスワップが発生しているように思えます。 また、書き込みサイズを小さくして試してみると、 766 ms for 500MB となってしまい、OSの遅延書き込みで正確な計測ができていない事は明らかです。 この2つの問題をクリアするには、CreateFileでいうところの、FILE_FLAG_NO_BUFFERING で書き込むことだと思います。ファイルが大きいのでバッファリングは不要ですよね?

kosyoudai
質問者

お礼

ご回答ありがとうございました。テストまでしていただいたようで、本当に感謝いたします。 参考にさせていただきます。 現在、問題なのは、この書き込み方だと、普通のHDの方が早くて、RAID0の方が遅いという減少がおきていることなのです。 そこで、新しく環境を用意しているところです。もし、新しい環境で動いたとしても、今回の問題が解決されたわかではないので、もし、思いあたることがあったら教えてください。よろしくお願いします。

すると、全ての回答が全文表示されます。
このQ&Aのポイント
  • 【A168エラー】新品プリンターにFINEカートリッジを差し込み、スマホアプリで接続して印刷しようとすると、スマホにだけA168エラーが表示される問題が発生しています。カートリッジのテープは剥がしており、コピーではカラーもしっかり出せるのに印刷だけができません。解消方法を教えてください。
  • 【A168エラー】新品プリンターにFINEカートリッジを差し込んだ後、スマホアプリで印刷しようとすると、スマホ画面にA168エラーが表示されて印刷できません。カートリッジのテープは正しく剥がしており、コピーでは問題なく印刷できます。エラーを解消する方法を教えてください。
  • 【A168エラー】FINEカートリッジを新品のプリンターに差し込んで印刷しようとすると、スマホアプリでA168エラーが表示されて印刷できません。カートリッジのテープは正しく剥がしており、コピーではきちんと印刷できています。A168エラーの解消方法を教えてください。
回答を見る

専門家に質問してみよう