こんにちはー、ニアです。
先日に私は、MacBook Pro(14インチ, M1 Max 2021)を購入しました!
昨年、検証のためにMacBook Air(M1 2020)を購入し、スキマ時間に使用している開発ツールやミドルウェアの動作確認をしていたのですが、私が使っているものがほぼ動作することを確認できたので、Appleの10月のイベント「Unleashed」の後、すぐに予約しようと決めていました。
1. ニアは、何をカスタマイズしたの?
スペックは今使っているものと同じにしつつ、持ち運びしやすい14インチの方を選択しました。
先月までは在宅ワークでMacBook Pro(16インチ, 2019)をメインに使っていましたが、最近オフィスに出社したり、コワーキングスペースで作業する日が増えたので、少しでも荷物を軽くしたかったのです。
MacBook Pro(14インチ, M1 Max 2021) (今回購入した方) | MacBook Pro(16インチ, 2019) (今まで使用していた方) | |
---|---|---|
CPU | Core-i9 9980HK(8コア16スレッド) | |
GPU | Radeon Pro 5500M(8GB) | |
SoC | Apple M1 Max(CPU10コア、GPU32コア) | |
メモリ | 64GB(ユニファイド) | 64GB |
SSD | 2TB | 2TB |
入出力ポート | MagSafe 3、Thunderbolt 4×3、HDMI端子、SDカードスロット、ヘットホン端子 | Thunderbolt 3×4、ヘットホン端子 |
重量 | 1.6kg | 2kg |
メモリは32GBか64GBで迷いましたが、Apple SiliconのGPUはユニファイドメモリをCPUなどと共用するので、私は念には念を入れて64GBの方にしました。
(多分32GBでもいけそうだけど、新型MacBook Proはメモリの換装が出来ないのが悩みどころです)
重量はMacBook Pro(16インチ, 2019)の時より400g軽くなるので、これで少しは肩が楽になればいいな。
(ちなみにMacBook Pro(16インチ, M1 Max 2021)は2.2kg。流石にこれは重すぎですw)
あと、SDカードスロットやHDMI端子が付いたのは嬉しいです。特に前者は旅行の時にはデジカメを使うので、SDカードを直接入れて写真を取り込めますね。
新型MacBook Proでは充電端子としてMagSafe 3が新たに搭載されたのですが、Thunderbolt 4経由でも充電できるので、私は家ではUSB-Cドッキングステーションを使い(WIndowsのノートPCと共用)し、外ではMagSafeケーブルを使っていこうと思います。
お値段は、AppleCare+込みで50万円ほどでした。奮発した分、仕事で発揮しないとね!
2. 早速開封して使ってみる
注文してから1週間ちょっとでMacBook Pro(14インチ, M1 Max 2021)が届きました。早速開封っと。
今まで使っていたMacBook Pro(2017〜2019)と比べると、全体的に角張っています。MacBook Pro モデルの一覧ページにある歴代のMacBook Proと見比べると、Early 2008からディスプレイ部分を薄くしたようなフォルムに見えますな。
キーボードはTouchBarが廃止され、物理のファンクションキーになりました(しかも縦幅が大きいので、押しやすくなった気がします)。
ただ、TouchBarはバグった時にファンクションキーが打てなくなってしまうので、物理キーになったのはその点で安心かな。
新型MacBook ProのディスプレイはバックライトがミニLEDになったおかげか、MacBook Air(M1 2020)やMacBook Pro(16インチ, 2019)のディスプレイと比べると、黒色がより引き締まって見えます。
気になるノッチですが、私は黒背景ベースの壁紙を設定して、ノッチが壁紙に溶け込むように工夫しています。
ちなみにディスプレイに貼っている保護シートは、「ミヤビックス OverLay Plus(反射防止タイプ)」です。
MacBook Pro(14インチ, M1 Max 2021)を入れるケースは、「MOFTのノートパソコン用キャリーケース」にしました(ケースとスタンドの1台2役!)。サイズは13.3インチ用ですが、新型MacBook Proのディスプレイのベゼルがかなり狭く、本体の縦横サイズがコンパクトなので、14インチでも普通に入れられました。
3. 気になる性能はどれくらい?
ベンチマークでいつも使っているGeekbench 5とCinebench R23で測定し、今まで使っていたMacBook Pro/Airと比較してみました。(MacBook Pro(13インチ, 2017)は故障のため除外)
Geekbench 5
MacBook Pro (14インチ, M1 Max 2021) | MacBook Air (M1 2020) | MacBook Pro (16インチ, 2019) (Core-i9 9980HK) | MacBook Pro (15インチ, 2018) (Core-i9 8950HK) | |
---|---|---|---|---|
CPU(シングルコア) | 1790 | 1375 | 1160 | 1079 |
CPU(マルチコア) | 12790 | 7575 | 7246 | 5428 |
GPU(Metal) | 68262 | 18960 | 4882(iGPU)/ 26825(dGPU) | 4796(iGPU)/ 17600(dGPU) |
GPU(OpenCL) | 62620 | 16931 | 5435(iGPU)/ 28170(dGPU) | 5009(iGPU)/ 17423(dGPU) |
Cinebench R23
MacBook Pro (14インチ, M1 Max 2021) | MacBook Air (M1 2020) | MacBook Pro (16インチ, 2019) | MacBook Pro (15インチ, 2018) | |
---|---|---|---|---|
CPU(シングルコア) | 1535 | 1493 | 1111 | 1136 |
CPU(マルチコア) | 12375 | 6893 | 9068 | 5888 |
Aplle M1 MaxのCPU・GPU性能はともに、MacBook ProのCore-i9やRadeonを大幅に上回っていました。特にGeekbench 5のGPUのスコアがぶっ飛んでいますw
MacBook Pro(15インチ, 2018 / 16インチ, 2019)も、購入当初はモンスターマシンと呼ばれるほどだったのに、それをあっさり超えてしまうM1 Maxのモンスターっぷりでした。
3.1. 冷却ファンが回る機会があまりなかった件
MacBook Pro(14インチ、M1 Max 2021)をしばらく使ってみて思ったのは、冷却ファンが回る機会があまりなかったことです。
CinebenchのCPU(マルチコア)測定やnodenvによるNode.jsのコンパイルでCPUをフルに使う時はさすがに作動しましたが、それ以外(例えば、Dockerでコンテナで立ち上げたり、Node.jsアプリをビルドしたり、JetBrainsのIDEやXcodeなどの開発環境をセットアップしたりなど)では、特にファンは回らなかったです。本体も熱くなりにくかったです。
ちなみにMacBook Pro(15インチ, 2018 / 16インチ, 2019)では、冷却ファンが回るのは日常茶飯事で、TouchBarよりの上の部分がとても熱かったです(汗)。
4. セットアップ中に気づいたこと
ここでは、セットアップ中に気づいたことのメモを書いておきます。
4.1. ターミナルからNode.js 12や14を使う時は、必ずRosetta 2を使う
Node.js 12や14はApple SiliconのMacで利用できますが、Apple Siliconにネイティブ対応ではないので、インストールやNode.jsアプリのビルドをする時は、Rosetta 2(以降、Rosetta)を使う必要があります。
あらかじめRosettaをインストールし、ターミナルからarchコマンドでzshなどのシェルをRosettaを使ってログインして、Node.jsをインストールします。
# あらかじめ、Rosettaをインストールしておきます。
# uname -mで、アーキテクチャーを確認します。
# arm64ならApple Siliconのネイティブで、x86_64ならRosettaで動作しています。
uname -m
arm64
# Rosettaを使ってzshにログインします。
arch --x86_64 /bin/zsh
# uname -mで「x86_64」が出力されればOK
uname -m
x86_64
# あとはnodenvで普通にNode.js 12をインストールします。(nodenv自体はRosetta不要でインストールできます)
nodenv install 12.16.3
# archコマンドに実行したいコマンドを渡して、そのコマンドをRosettaで実行するということもできます。
arch --x86_64 nodenv install 12.16.3
もしくは、ターミナルを「Rosettaを使用して開く」に設定するのも有効です。ただ私はそこでアーキテクチャーをいちいち切り替えるのが煩わしいので、必要に応じてarchコマンドで切り替えるようにしています。
ちなみに、RosettaなしでNode.js 12をコンパイルすることもできましたが、npmのインストールやNode.jsアプリのビルドが絶望的に遅すぎて使い物にならなかったです(Rosettaを使って実行すれば普通に高速で動作します)。
(そのアプリではRosettaを使ったり、Node.js 16にアップグレードしたりすれば1分足らずでnpmインストールが完了したので、Apple Siliconネイティブに非対応のNode.jsは必ずRosettaを使いましょ)
Node.js 15からはApple Siliconにネイティブ対応しています(LTSバージョンではNode.js 16から対応しています)。
「Node.js 16」が公開 ~Apple Silicon向けのプリビルドバイナリを初めて提供 – 窓の杜
4.2. x86_64(arm64)用Dockerイメージを利用するには、platformオプションを明示的に指定する
Docker自体はApple SiliconのMacに対応しているのですが、イメージによってはarm64(arm64v8)用のものがないので、x86_64(amd64)用のイメージを利用するために、platformオプションで「linux/amd64」と明示的に指定する必要があります。
# x86_64(amd64)用のイメージをpull
docker pull --platform linux/amd64 ${IMAGE}
# x86_64(amd64)用のイメージからコンテナを実行
docker run -it --rm --platform linux/amd64 ${IMAGE} ${CMD}
# Dockerfile
FROM --platform=linux/amd64 ${IMAGE}
...
# docker-compose.yml
version: "3"
services:
hoge:
image: ${IMAGE}
platform: linux/amd64
...
ubuntuなど公式のイメージであれば「アーキテクチャー/イメージ名」と、アーキテクチャーのプレフィックスを付けてpullする手があります。
Docker Official Images – GitHub
5. おわりに
セットアップと既存のプロジェクトのApple Silicon対応化をほとんど終えて、MacBook Pro(14インチ, M1 Max 2021)をメインのMacに、MacBook Pro(16インチ, 2019)を予備のMacに世代交代しました。
MacBook Air(M1 2020)は一旦初期化して、別の用途に使おうかなと思います。(せっかくのAirかつゴールドなので、サブ機としてとっておきたいです)
今回のMacBook Proは、今シーズンで購入したiPhone 13 Pro、iPad mini 6、Apple Watch 7とともに、初めてAppleストアにて予約注文(という名の争奪戦に参加)しました。特にiPhoneとApple Watchは激しかったですな(開始からわずか数分で発売日到着分が完売するほど)。
MacBook Proの時はAppleストアのサイトになかなか繋がりにくく、バッグに追加ボタンを押しすぎて、バッグ内にMacBook Proを4台入れてしまうハプニングがありましたw(その後サイトが安定してきた時に、バッグ内を整理して、必要な分だけ注文できました)
新しいMacBook Proとその仲間達をこれからたくさん使っていきますぞ!
(END)