M1 Macのメモリの挙動分析

以前Intel MacでMacのメモリの挙動を分析したことがあるが、今回は主にブラウザを用いて手持ちのM1 Mac miniでApple Silicon(M1)のユニファイドメモリの挙動の分析と、ついでにSafariとChromeのメモリ使用量の比較を行ってみたいと思う。

Macのメモリを16GBから32GBに増設した後のパフォーマンス

環境は下記の通り。

  • M1 Mac mini 16GB ・SSD 512GB
  • macOS Big Sur 11.2.2
  • 擬似解像度3008x1692

M1 Macメモリ分析のテストに当たって

M1に限らずMac(macOS)は起動直後はよく使うアプリケーションやプロセスのキャッシュを優先的に行い、起動直後は正確なメモリ使用量を分析出来ないので本テストはMacを起動してから丸1日経ったあとに行っている。

また、Intel Mac(RAM 32GB・SSD 512GB)を比較に出すこともあるが、M1はユニファイドメモリであり、メインメモリもVRAM(ビデオメモリ)も共有され単純な比較は出来ないため参考程度に受け取って頂きたい。

なお使用しているブラウザはSafariとM1版Chromeとなる。

メモリ使用量の測定にはアクティビティモニタとiStat Menusを使用。

M1 Macのメモリ挙動

Safari・Chromeタブ15+Affinityで30枚の画像を開く

まず一般的なタスク(ミュージックで音楽を聴く、Finderウィンドウを開くなど)をしながらSafariとChromeでタブを15個(15個は全て違うサイト)を開き、Affinity Photoで1024x800の画像を30枚開いた時のメモリの状態が下記の通り。

スワップが1.74GBになり、圧縮メモリは3.23GBとなった。

また、この時点においてSafariとChromeのメモリ使用量はSafariの方が若干多い(3.34GB)。

Safari・Chromeタブ15+Affinityで30枚の画像を開きながら、それぞれのブラウザで4K動画を再生

続いてSafariとChromeそれぞれで新たにタブを1つ開きYouTubeでそれぞれ全く同じ4K動画を同時に再生した状態のメモリ使用量が下記の通り。

4K動画の再生はGPUへの負荷が高くなると同時にGPUが要求するメモリも多くなる。

さすがにCPU・GPU共に負荷が高くなったためかメモリ圧縮で捌き切れなくなったメモリがどんどんスワップされていき、SafariとChromeのメモリ使用量も4GB前後をウロウロするようになる。

また、この時点でChromeのメモリ使用量がSafariを超えている。

Safari・Chromeタブ15+Affinityで30枚の画像を開きながら、それぞれのブラウザで4K動画を2つ再生

続いてSafariとChromeで全く同じ4K動画をそれぞれ2つ(合計4つ)再生するという強い負荷をかけた状態のメモリ使用量が下記。

スクリーンショットを撮るタイミングがズレたためアクティビティモニタとiStat Menusでのスワップ使用領域の値が一致していないが、4K動画をSafariとChromeで合計4つ再生するという強い負荷はスワップと特にメモリ使用量を跳ね上げ、Safariのメモリ使用量が5GBを超えた。

ただしSafari及びChromeどちらにおいても4K動画を4つ再生していながら、相変わらず動画はコマ落ちなどはしておらずスムーズな再生が可能だった他、Safariでよくある「このWebページは多くのメモリを使用しています。このWebページを閉じるとMacの応答が改善する可能性があります」という警告も今回のテストでただの一度も出なかった。

Safariでお馴染みのメモリ警告

Intel MacではSafariで4K動画を1つ再生しただけで上記警告が頻繁に表示されたのだが、何故かM1 MacのSafariではYouTubeページ単体で1.5GB程度を消費し、Safari全体のメモリ使用量が5GBを超えているにも関わらず警告が全く出ない。

もちろんSafariを長時間使用していると稀に警告が出ることはあるが、警告が出たとしてもすぐに消えるためIntel Macと比べるとM1 MacのSafariはメモリ警告が非常に発生しにくいという印象だ。

この辺のSafariの挙動の違いはM1 Macへの最適化の恩恵かもしれない。

Safari・Chromeでの4K動画再生停止後

興味深いのがSafariとChromeで4K動画の再生を停止させてページを閉じたあとのメモリ使用量だ。

合計4つの4K動画の再生を停止してページを閉じると当然SafariやChromeのメモリ使用量は3.7GBほどまでに落ちるのだが、逆に今ままでバックグラウンドで起動していたAffinity Photoのメモリ使用量が急に7.31GBにまで跳ね上がり、スワップ使用領域も4.69GBと大きく膨らんだ。

なお、この間Affinity Photoは画像を開いていただけで編集などは全く行っていない。

SafariとChromeに割かれていたリソースが解放されたため、macOSはその分のリソースをこの時点で最もメモリを食うAffinity Photoに回したとも取れるが詳しい理由は正直なところわからない。

数時間放置後

前述までのテストの後、数時間Macを放置(スリープなし)したあとのメモリ使用量は下記の通り。

SafariとChromeのメモリ使用量は3〜4GB辺りをウロウロしている状態だが、Safariの方が若干メモリ使用量が高く、少なくとも今回のテスト全体を通して判断するとChromeよりSafariの方が若干メモリを食うと言えるかと思う。

また、スワップに関しては1〜2GBにまで落ち着き、その後も2GB台でほぼ変化がないため、4K動画を4つ再生させたりAffinity Photoなどの画像編集アプリケーションで多数のファイルを開くといった極端なことをしない限り、僕の環境では3GBを超えないようだ。

ゲーム:Rise of the Tomb Raider

続いてはゲーム「Rise of the Tomb Raider」をプレイ中のメモリ使用量だが、このゲームもクライアントアプリケーションの「Steam」もApple Siliconに最適化されておらず、Rosetta 2による変換(エミュレーション)が行われるためパフォーマンスが通常より落ちる。

設定は下記の通り。

  • 1920x1080ウィンドウモード
  • 設定:最高(プリセット)
  • VSYNC:オフ
  • 他のアプリケーションは常駐アプリ以外全て終了

本ゲームは2015年のゲームだが当時使用していたWindows PC(Core i7 4930K・RAM 16GB DDR3・GTX 980 4GB SLI)でも重かった記憶がある。

結果は上記の通り。

他のアプリは常駐アプリ以外全て終了させているためスワップはそれほどでもないがゲームプレイ後十数分でメモリ使用量は6.22GBまで上昇し、CPU用・GPU用にメモリを大量に持っていかれた印象だ。

ゲームによってメモリ使用量はもちろん変わってくるが、M1 Macの8GBモデルなどではこうした重量級のゲームは厳しいと言わざるを得ない。

なお、ゲームプレイ自体は最高設定でも体感として20fpsほどであり、カクつきはするもののプレイ自体は可能だった。

参考までに本ゲームのベンチマークモードのスコアは下記の通り。

設定を落とせばスムーズなプレイが可能だろうし、Apple Siliconに最適化された場合は更にフレームレートが向上するだろうが、現状ではフレームレート以前にメモリ使用量が高いためM1 Macで重量級のゲームは難しいだろう(特に8GBモデル)。

メモリ32GBのIntel Macのメモリ使用量

前述のM1 Macと同様のテストを行ったわけではないが3日間起動させっぱなしで、Parallels DesktopでWindowsを動かすなどのそれなりに高い負荷がかかっているIntel Mac(Mac mini Core i7・RAM 32GB・eGPU VRAM 8GB)のメモリ使用量は下記の通り。

丸3日間起動させっぱなしにも関わらずメモリ圧縮もスワップも全く行われず、メモリプレッシャは僅か9%。

Intel Macの方はmacOS CatalinaなのでmacOSの違いはあるにしても、さすがに独立したVRAMを8GB持ち、メモリも32GBと潤沢にあるためメモリ使用量という点ではIntel Macに分があるようだ。

ただ、ここまでのテストで高いメモリ負荷がかかっているにも関わらずM1 Macは特に処理が遅くなるといったことはなく、メモリに関して不足を感じたことは正直ない。

おまけ 8K動画はカクカクで再生不可

余談だが、YouTubeで4K動画を4つ同時に再生出来るからといって8K動画が再生可能かというとそんなことはなく、M1 MacでもIntel Mac(Core i7 6コア12スレッド)でも8K動画はカクカクであり、ゲーム以上に厳しい。

8K動画はカクカク
メモリはそれほどでもないがCPU・GPU共に極度に負荷がかかる

YouTubeの8K動画はGoogle ChromeとFirefoxが対応しているが、CPU・GPU共に異常な負荷がかかり、M1 Mac・eGPUを接続したIntel Mac共に頻繁にローディングアニメーションが表示され(回線の問題ではない)、まともな再生は不可能。

まとめ

既にM1 Macを使用して1週間経っているが、本記事のように画像編集アプリケーションで画像を30枚開いたり、重量級のゲームのプレイ、8K動画再生といった極端な状況でない限りメモリを大量に食うといったことはなく、また、スワップはGB単位で発生するもののスワップによる速度低下を感じたこともない。

MacRumorsなどの海外フォーラムでは「M1 Macの16GBは体感としてIntel Macの32GB」と言われたりするが、あながち嘘ではなくM1 Macはユニファイドメモリとなったことで負荷がかかる処理でも速度低下が起きにくく、メモリ管理も効率的になっているようだ。

もちろんスワップは少ない方がいいので将来的にM1XやM2 Macではメモリ32GBや64GBのオプションを用意してほしいが、現状では極端なことをさせない限り最大16GBのM1 Macでも大半のタスクはこなせるだろう。

また、SafariとChromeに関しては今回のテストではSafariの方がメモリ使用量が若干高かったものの、M1 Mac上のSafariはメモリ警告もほぼ表示されず、動作もChromeとSafariで劇的な違いはないため、好みで使用してしまって構わないかと思う。

いずれにしろCPU・GPUで共有されている16GBのメモリでSafari・Chromeにおいて難なく4K動画を4つ再生出来たり、重量級のゲームも最高設定でプレイ自体は可能というのは正直驚きであり、加えてIntel Macとは比較にならないほど消費電力も発熱も低いため、改めてM1(Apple Silicon)の優秀さを感じる結果となった。