私はファイルをUSBデバイスにコピーするコードの前にいます。 以下の部分は重要なものです:fread/fwriteでファイルをUSBにコピーする性能
while((bytesRead = fread(buf, 1, 16*1024, m_hSource)) && !bAbort) {
// write to target
long bytesWritten = fwrite(buf, 1, bytesRead, m_hTarget);
m_lBytesCopied += bytesWritten;
事は、顧客が言った、それは通常のPC <に比べてかなり遅いです - > USBスピード。私はこれをコード化しなかったので、最適化するのは私の仕事です。
最初に完全なファイルを読み込んでから、そのファイルを1つのステップで書き込む方が良いのではないかと思いました。しかし、私はどのようにエラーが起こりやすいのか分かりません。 このコードは、すべてのバイトが正しく書かれている場合には、各copystepの後にもチェックします。そのため、処理が遅くなることもあります。
私はそうではありません。++ &ハードウェアの達人なので、私は物事をスピードアップし、コピーを成功させる方法を聞いています。
ボトルネックの他の部分を参照してください。あなたはバッファサイズを変更する少しの改善を得るかもしれませんが、あなたの問題はおそらく別のものです。 –
これは、この特定の問題で何かをしている唯一の部分です。だから、それはコードだけかもしれません。 –
バイトが正しく書き込まれたことのチェックを削除します。最初の書き込みを信頼できない場合は、検証に使用する次の読み取りを信頼できません。 (私はあなたがエラーのためにbytesWrittenをチェックしていると仮定します)。 –