開発者ドライブってどうなん?
新しい PC を組んで Windows11 にしたら開発者ドライブ (Dev Drive) なるものの存在を知りました。NTFS ではなく ReFS を使っててプロジェクトやパッケージキャッシュをここに置くと 25% 速いらしい。
ただ私の D ドライブは PCIe Gen4 なんですよね… CrystalDiskMark だとランダムで 35% ほど Gen5 のほうが早いのですが… Gen5 の普通のディレクトリと Gen4 の開発者ドライブではリポジトリをどっちに置くべきか悩みますよね? 調べてみました。
見どころは
- Dev Drive って本当に早いの?
- Gen5 の SSD だとビルド早くなるの?
環境
core ultra7 265K (micro code: 0x112)
MSI Z890 CARBON WIFI
C: crucial T705 (PCIe Gen5 公称R/W 14500 MB/s、12700 MB/s)
D: crucial T500 (PCIe Gen4 公称R/W 7300 MB/s、 6800 MB/s)
比較のため D ドライブはフォーマットし直して NTFS と ReFS で調べています。そのため時間が経っているので室温その他の影響で CPU のターボブーストの掛かり方が違うかもです。
ReFS のフィルタはデフォルトの WdFilter のみ。これで Microsoft Defender がパフォーマンスモードで実行されるはずですがフィルタを切ればもう少し早くなるのかもしれません(リスクは高まりますが)。
ドライブの CrystalDiskMark の結果は D:NTFS、D:ReFS、C:NTFS の順 (以後この順) で、
こんな感じ。(T705 がネットで見かける数字より低いのが気になっています。ArrowLake だから?)
テスト内容
VisualStudio は WinUI-Gallery のビルド時間、Git は NodeJS のローカルクローン時間、Unity は Time Ghost: Environment のインポート時間、UE5 は Valley of the Ancient Sample の起動時間、でそれぞれ4回実行しています。
VisualStudio
- VisualStudio Community 2022 version 17.12.3
- WinUI-Gallery-2.5.1
- nuget パッケージキャッシュも D:
- debug x64 ビルド
- ソリューションのクリーンしてから、ソリューションのビルド。出力ウィンドウの「〇〇秒掛かりました」の値
| 1回目 | 2回目 | 3回目 | 4回目 |
---|---|---|---|---|
D: NTFS | 33.044 | 29.098 | 29.032 | 29.125 |
D: ReFS | 32.432 | 28.756 | 28.831 | 28.988 |
C: NTFS | 32.024 | 31.027 | 31.364 | 31.090 |
D: の NTFS と ReFS では ReFS が気持ち早い気がしますが 1% に満たない程度。(他の回ではもう少し差が開いた時もあるのですが…)
C: がなんか遅いですね? 最速と言われる T705 なのですが… C:と比べると ReFS が 8% 程度早いです。
Git
- Git for Windows (git version 2.47.1.windows.1)
- git clone https://github.com/nodejs/node.git した後、time git clone node node_1 の real 値
| 1回目 | 2回目 | 3回目 | 4回目 |
---|---|---|---|---|
D: NTFS | 5.716 | 5.732 | 5.691 | 5.820 |
D: ReFS | 4.293 | 4.344 | 4.263 | 4.306 |
C: NTFS | 9.383 | 9.214 | 9.139 | 9.354 |
プレゼン資料?の 41% は行かなかったけど 25% ほど早いので有意な差があるようです。
でも C: がクソ遅いですね。何故だろう?
念の為、古い PC (core i7-6700K、C,Dドライブとも SAMSUNG SSD 850 EVO、Cygwin の git version 2.39.0) でも計測してみましたが同じ傾向でした。
Unity
- Unity6 6000.0.32f1
- Time Ghost: Environment 1.1
- プロジェクト読み込み後、Reimport All。
- ストップウォッチでエディタ右下の Compiling compute variants のプログレスバーが消えるまでの時間。
| 1回目 | 2回目 | 3回目 | 4回目 |
---|---|---|---|---|
D: NTFS | 3:11.19 | 3:12.00 | 3:13.06 | 3:10.96 |
D: ReFS | 3:06.74 | 3:05.86 | 3:05.28 | 3:05.48 |
C: NTFS | 3:16.26 | 3:13.23 | 3:15.48 | 3:15.51 |
NTFS と ReFS を何度かフォーマットし直して行き来しているのですが毎回数秒単位でズレるんですよね。でも4回の試行はほぼ同じ値という… 最初に書いたように室温の違いでCPUのクロックが違うんですかね?
この回は 3% ほど ReFS が早いように見えますが他の回ではもっと遅いときもあるのでなんとも言えず…
UnrealEngine
- UnrealEngine 5.5.1
- Valley of the Ancient Sample
- 「AncientGame.uproject をダブルクリックして AncientWorld.umap を開いてくださいの画面まで」と「AncientWorld.umap を開いてから実際の画面が出るまで」をストップウォッチで計測
| 1回目 | 2回目 | 3回目 | 4回目 |
---|---|---|---|---|
D: NTFS | 25.19 + 31.94 | 12.25 + 30.18 | 11.57 + 29.70 | 12.07 + 30.29 |
D: ReFS | 26.88 + 31.93 | 12.03 + 29.61 | 12.00 + 29.57 | 12.49 + 31.20 |
C: NTFS | 28.97 + 31.97 | 12.20 + 30.01 | 12.25 + 29.98 | 12.04 + 30.12 |
普段 UE はあまり使わないからキャッシュの場所を知らなくて特にクリア等せずに何度も開いているだけです。なので2回目以降起動が早くなっています。
スプラッシュ画面はばらつきがあるけどマップのロード時間はほぼ同じ。
これは各ファイルシステムで有意な差は無い感じかな?
まとめ
- Unity や UnrealEngine では Dev Drive の効果はあまり無い。
- VisualStudio や Git リポジトリには一定の効果がある。
- SSD は Gen5 のメリットは無い、少なくとも私の環境では。(別の CPU/マザボ/SSD ならどうだろう?)
- 特に Git で C が遅いのなんで~?
…まとまってないですね。 「いかがでしたか?」のサイトみたいになっちゃったw
追試結果などあれば教えて頂けると嬉しいです。