3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援→開発戻り浦島太郎状態の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。

ファイルコピーベンチマークのためダミーファイルを作りたい

今回共有フォルダでのファイル転送ベンチマークを測定しようと思ってました。

それで、ファイルサイズが小さい分と、大きい分のテストデータが必要になります。

そのダミーファイルを簡単につくる方法がないかとおもったら、有りました。

@IT:巨大なサイズのファイルを簡単に作る方法に載ってます。

fsutil というコマンドを使えば簡単にダミーファイルを作れるようです。

書式は下記のうような感じ。

fsutil file createnew ファイル名 サイズ

サイズは10進指定なので、WindowsでいうMやGの単位に合わせたいときは注意が必要ですね。(正確には2進接頭辞で表すとMi,Gi)

1Ki = 2^10 =1024

1Mi = 2^20 =1024x1024 = 1048576

1Gi = 2^30 =1024x1024x1024 = 1073741824

1Pi = 2^40 =1024x1024x1024x1024 =1099511627776

(このあたりの単位換算はWikipedia:2進接頭辞伊勢雅英のIT見聞録情報の単位を参照)

ただ、NTFSでファイルを作ったときは注意が必要なようです。

NTFSの場合、ファイルのブロックを予約するだけで実際のデータの記録はしてないようです。

ですので、fsutil でファイルを作ったら一旦コピーしてから使ったほうが無難ですね。

ファイルコピーの時間計測

コピーの時間の計測も参考元@ITにあるように、下記コマンドで測れます。

time /t && copy testfile testfile2 && time /t

しかし、これだと時間が分までしかでません。

ということで、秒単位で測るならバッチファイルにしてしまったほうが良いかと思います。

下記ようなバッチにしました。

@echo off

echo %time%

xcopy testfile testfile2 /q /i /E /Y

echo %time%

pause

これで簡単に任意のサイズのファイルを使ったベンチマークができますね。