快適なRust開発体験を求めて - マシンパワー盛り盛り編

2025/02/14に公開

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のネガティブな面をどれほど解消できるのかに興味があった。

スペック

task manager
タスクマネージャの様子

マシンの構成は以下の通り:

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さんの以下の記事が参考になる。

https://zenn.dev/fairydevices/articles/59cd718341da58

体感的な違い

おおむね満足している。
体感的な開発体験の向上度合いは、数値での差と同じくらいだと思う。つまり、だいたい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を別扱いできるようになれば、うまくやりくりできそうなんだけど……

https://github.com/microsoft/vscode/issues/44697

まとめ

  • Ryzen 9 9950X を買って満足
  • 今後も継続的に良いCPUを使っていきたい
  • モンハンワイルズ楽しみすぎる
脚注
  1. Threadripperについては考えないものとする ↩︎

  2. M3 MaxのCPUコア数を明記しているのは、上位モデルとして16コアのものが存在しているため ↩︎

Discussion