快適なRust開発体験を求めて - マシンパワー盛り盛り編
Rustの開発を快適にするためにRyzen 9 9950Xを導入し、1週間ほど経過した。
乗り換え前に使っていたM3 Max MacBook Proと比較しての現時点での感想をまとめておく。
動機
乗り換えの最大の動機はモンスターハンターワイルズをプレイするためにWindowsマシンが必要だったから仕事で書いているRustプロジェクトの開発体験が悪く、集中力を持続させながら開発を行うことが難しいと感じていたため。
具体的には、ある場所で型エラーが出ているとき、「.into()
差し込めば直るかな~」といったお祈り修正をすることがある(もちろん完全に当てずっぽうというわけではなく、あわせてrustdocを確認したりもするが、とりあえず試してみて通ったら嬉しいね、くらいのニュアンス)のだが、ここで変更後に保存して、rust-analyzerによる型チェックが完了するまでに結構待たされる、といったようなことがある。
「結構」というのは、値を正確に計ったわけではないし修正場所次第で変わってくる部分もあるのだが、「ちょっとXでも開いてタイムラインを眺めるか」と思わせるほどの待機時間が発生することもある。(といってもおそらく10秒以内だとは思う。僕がタイムライン見たすぎ人間ということ)
これが例えばRust以外の言語 (e.g. Go) であったならば、おそらくエディタの保存後即座にフィードバックを得ることができ、集中力を維持したまま開発を継続することができるであろうと思う。Rust自体はとても好きな言語であるので、現状コンシューマ向けの最強のCPU[1]であるRyzen 9 9950Xを導入することで、Rustのネガティブな面をどれほど解消できるのかに興味があった。
スペック
タスクマネージャの様子
マシンの構成は以下の通り:
Before | After | |
---|---|---|
CPU | M3 Max 14 core[2] | Ryzen 9 9950X |
GPU | M3 Max 30 core | GeForce RTX 5080 |
Memory | 36GB | 64GB (WSLへの割り当ては32GB) |
Storage | 1TB | 2TB + 1TB |
OS | macOS | Ubuntu 24.04.1 (WSL) |
数値的な違い
上述の通り、マシン乗り換えの最大の目的は「体感的にキビキビ動くようになってほしい」なので、あまり数値上の違いだけ見ても仕方ないが、とはいえ参考のためにいくつか数値データを載せておく。
ベンチマーク
M3 Max 14 coreとRyzen 9 9950Xで、CPU Markによるベンチマーク上では以下のような違いがあるようだ。
CPU | Single | Multi |
---|---|---|
M3 Max 14 core | 4776 | 36607 |
Ryzen 9 9950X | 4745 | 66529 |
他のベンチマークだとシングルスレッド性能も9950Xのほうが上だったりすることもある模様。
Denoのビルド時間
denoland/denoのビルド時間を手元で計ってみた。
CPU | Debug Build | Release Build |
---|---|---|
M3 Max 14 core | 2m45s | 9m02s |
Ryzen 9 9950X | 1m47s | 7m01s |
デバッグビルドは35%、リリースビルドは23%ほどの短縮。
ちなみに9950Xのほうではリンカにmoldを使用した。tatsuya6502さんの以下の記事が参考になる。
体感的な違い
おおむね満足している。
体感的な開発体験の向上度合いは、数値での差と同じくらいだと思う。つまり、だいたい3,4割くらいキビキビ動くようになったような気がする。
たった3割?となるかもしれないが、これが個人的には効いている。
今が新PC導入ブースト期間による心理的なバフが働いている可能性も否定しきれないものの、ソースコードを少し変更して、保存して、rust-analyzerによるフィードバックを待つ、というサイクルがスムーズに回るようになった感覚がある。待たされるは待たされるけど、まあちょっと待ってもいいか、くらいにはなった。
純粋にCPUのパワーだけでなく、新マシン導入に際して開発環境を見直したところも効いているかもしれない。
以前はVS Code上でVimキーバインドを実現するためにVSCodeVimを使っていたが、何かが思い通りに動かなくてVSCode Neovimに切り替えてみた。たまに描画がおかしくなるものの、Neovimのプラグインがそのまま使えたり(mini.surroundを導入してみた)、動作もサクサクしていて小気味よい。
Windowsの設定はまだしっくりきていないところがある。
CapsLock
(A
の左)およびスペースバーの左右をCtrl
に割り当てたり、いろいろいじったものの、Win
をどの物理キーに割り当てるかが問題となっている。VS Codeのキーバインド設定で右Ctrl
と左Ctrl
を別扱いできるようになれば、うまくやりくりできそうなんだけど……
まとめ
- Ryzen 9 9950X を買って満足
- 今後も継続的に良いCPUを使っていきたい
- モンハンワイルズ楽しみすぎる
Discussion