M1 Macで開発をする
M1 Mac を買いました。
見ての通り、メモリ8GBでとても開発に向いてるとは思えないですが、どうも色々な人のレポートを見てるとありなのでは?と思い始めたのと、どうせ上位版が出たら、今のを売って買い替えるつもりなので、最速で購入できる M1 Mac mini を購入したのでした。
ということで、M1 Mac mini 8GB (SSD 512GB)モデルで開発環境を整えるとどうなるか?です
- Chrome, Dropbox, VSCode などをインストール
- 最低限の System Preferencese を設定
- terminal の設定
あたりまでして、スクショなりを取っておけばよかったと後悔したがまぁいいや
VSCode をインストールして設定をしてるときに知った(思い出した)のだけど git は、デフォルトでは入っていない。
% git
xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools.
ターミナルでgitを叩くとXcode の command line developer tools のインストールダイアログが出るので、インストールをする。
ある意味至れり尽くせり感があって良い
% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Password:
Homebrew is not (yet) supported on ARM processors!
Rerun the Homebrew installer under Rosetta 2.
If you really know what you are doing and are prepared for a very broken experience you can use another installation option for installing on ARM:
https://docs.brew.sh/Installation
Homebrew をインストールしようとした時に、ARM対応がまだ不完全だと言われる。
悩ましい。Rosetta2前提でインストールすれば無難にあれこれ動きそうだけど、それはそれでもったいない。
まぁどうせある意味、検証用に買ったようなマシンなので、あれやこれやが対応し出したら、クリーンインストールすればいいのではないか?むしろある程度対応が揃ってきたらクリーンインストールしないと、レアなトラブルにあれこれぶつかりそうな予感はする。
ということで、諦めて素直に Rosetta2 経由でインストールする。
Finderで、アプリケーション -> ユーティリティ -> ターミナル.app のコンテキストメニューを開く
「情報を見る」
「Rosettaを使用して開く」を有効にする。
ターミナルを開き直す。arch
コマンドで i386
が帰って来ればOK。
% arch
i386
% /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Password:
==> This script will install:
で Homebrew をインストールできる。
ちなみに Rosetta2 でターミナルを開いてると、Homebrew なども全く問題なく動くけど、性能劣化はたしかにあるのと、それ以上にメモリを異様に食う点に注意してください。気を抜くと4GBくらい食われています。
まず Node.js を動かして、VSCode で JavaScript 開発ができることを目指す
手順は、以前記事に書いた JavaScript開発環境構築(macOS編) の通りに
Intel互換モードなのでサクッと動く
- Node.js のコードは、Intel なのでなんか普通に速いなーって感じ。
- Apple Silicon 版 Chrome で何かを動かすと異次元な速さ
- GMail のページ読み込みから初期化が、本当に一瞬
ウェブ開発者の人は、M1 Mac だけ持ってるみたいな状況になるとまずいと思うので、メモリ8GBとか4GBクラスのIntel Windowsマシンとかを別途持つこと推奨
リニアな速度アップって感じじゃなくて、速い奴は変んな速さを発揮しやがる感じかも
まだあんまりメモリ爆食い状態試してないけど、Intel な VSCode もノンストレスで動いてる
ChromeとRosetta2ターミナルを開きっぱなしだとメモリを、14GB+4GB食って、さすがにその状態だと大変なので、Chromeとターミナルは定期的に再起動が必要(これは、Intel 16GB Mac使ってるときでも全く同じだったから、もう Chrome はそういうものとして認識するしかない)
USB4(USB3.2, Thunderbolt3)ポートなど、I/O はかなり buggy なのは覚悟しておくほうが良い
「Apple Silicon Macで4K編集」は実用に足るか? (4/4) - ITmedia NEWS によると
このドライブ、スペックシート上はリード・ライト共に850MB/sなので、旧MacBook Proでのパフォーマンスはだいたい納得できるところだ。ところが新MacBook Airでは、その半分程度しか出ていない。ケーブル等は同じである。
USB 3.1 Gen 2の最大理論値は10Gbpsで、旧MacBook Proのリード値865MB/sをbps換算するとだいたい6.9Gbpsぐらいである。理論値10Mbpsに対して約7Gbpsは妥当なところだ。それに対して同じドライブが、同スペックと言われるインタフェースに繋いで半分しかスピードが出ないのは問題だろう。
らしい。
他にも僕が体験した範囲では
- 初期セットアップだと、USB4ディスプレイは一切認識せず(HDMIに繋ぐしかなかった)
- USB4 x2は認識しないので、HDMI x1 + USB4 x1 にしないとだめっぽい?
- USB4 接続のディスプレイがなぜか認識してるけど通電しない現象にそうぐうしがち(以前にも似たような現象に、Intel Mac で遭遇したことがあったけど、バージョンアップによってなくなった。ドライバの問題?)
- bluetooth がいきなり死ぬ
- Apple Watch でロック解除に失敗する
など
画面ロック(CTRL+SHIFT+電源/eject)が効かない。
スリープ(CMD+OPT+電源/eject)なら効く。
ヘビータスク動かしたいけど画面だけ止めておきたい場合どうすんねんっていう疑問はあるが、もしかしたら、CMD+OPT+Ejectが画面ロックに変わってるのかもしれない(しらんけど)