先日リリースされたDocker Desktop 4.35でApple Silicon Mac専用のハイパーバイザーである Docker VMM (Virtual Machine Manager)
がベータ版として追加されました。
これはApple Silicon Macでのみ利用できるコンテナに最適化された新しいハイパーバイザーです。Linuxカーネルとハイパーバイザーレイヤーの両方が最適化されていて、一般的な開発タスクにおいて従来のApple Virtualization Frameworkと比べ大幅にパフォーマンスが向上されるようです。公式のブログではこのように書かれています。
find を使用した大規模な共有ファイルシステムの反復処理は、コールドキャッシュを使用した Docker Desktop 434 よりも 2倍高速になり、キャッシュがウォームな場合は Mac でネイティブに実行するよりも最大 25倍高速になりました。
Lenetのサービスは主にPHPで実装されていてファイルアクセスが多数発生するため、大幅に速くなる可能性があります。Macで実行するよりも速くなったら最高ですね。
パフォーマンス比較
以前にDocker Desktopの新機能のパフォーマンス比較をしたときと同じ観点で見ていきます。
Docker Desktopに統合されたmutagenが開発体験を改善するか検証する - WHITEPLUS TechBlog
今回もベンチマークの詳細は公開できないため雰囲気だけでも感じ取って貰えれば幸いです。
ベンチマーク内容 | Apple Virtualization Framework | Docker VMM |
---|---|---|
とあるエンドポイントへのアクセス | 0.65s |
1.93s |
とあるDBアクセス多めのユニットテスト | 6.2s |
13.48s |
php artisan inspire |
0.86s |
1.74s |
composer dump-autoload |
17.35s |
28.81s |
おかしいですね。めちゃくちゃ遅くなっています。
なにか設定が漏れていたりするのかと思い公式ドキュメントを読んでみると衝撃の事実が書いてありました。
Docker VMM does not currently support Rosetta, so emulation of amd64 architectures is slow.
LenetのDocker Imageはamd64であるため遅くなってしまうようです。今はベータ版ですし仕方ありません。
Apple Virtualization Frameworkよりも遅くなってしまっているため、Rosettaに対応するまでVMMはお預けですね。
ベータが外れRosettaに対応するのを楽しみに待ちましょう。
さいごに
ホワイトプラスでは、ビジョンやバリューに共感していただけるエンジニアを募集しています!
ネットクリーニングの「リネット」など、「生活領域×テクノロジー」で事業を展開しています。
弊社に興味がある方は、オウンドメディア「ホワプラSTYLE」をご覧ください。オンラインでのカジュアル面談も可能ですので、ぜひお気軽にお問い合わせください。