1 ポイント 投稿者 GN⁺ 2023-12-30 | 1件のコメント | WhatsAppで共有

M3 MacBookアップグレードの価値は何か?

  • M1/M2チップからM3へ開発者用マシンをアップグレードする価値があるかを調べるため。
  • 開発者の生産性を定量化するのは難しい。
  • フィードバックループが速いほど、開発者の効率は高まる。

ビルドテレメトリの収集

  • Goのホットリローダーを使って、開発者ノートPC上でビルドテレメトリを追跡。
  • システムレベル、ランタイムメトリクス、ビルドテレメトリなどを追跡するために独自のビルドツールを開発。
  • テレメトリイベントをデータウェアハウスへ送信。

データ分析

  • 高品質なデータを生成し、十分なデータセットを構築した後に分析を開始。
  • ビルド時間はシステムごとに異なる可能性があるため、単純な平均比較はできない。
  • OpenAIの新しいコードインタープリタを使ってデータを分析。

OpenAIアシスタントの作成

  • データをCSVにエクスポートし、OpenAIアシスタントに渡して分析。
  • gpt-4-1106-previewモデルを使ってデータを分析。

データのクレンジング(電源、キャンセルなど)

  • 失敗またはキャンセルされたビルドを除外。
  • バッテリー駆動中のビルドは性能低下の可能性があるため、AC電源で実行されたビルドのみを対象にした。

すべてのビルドが同じではない

  • Goプロジェクトはさまざまな「パッケージ」で構成されており、コンパイラは変更がある場合にのみ再コンパイルする。
  • ビルド時間は、即時(3秒未満)、高速(30秒未満)、中程度(30秒〜1分)、低速(1分以上)に分類される。

M1とM2の比較

  • AC電源かつ成功したビルドデータに絞ってクレンジングした後、M1とM2プラットフォームを比較。
  • M2 MaxはM1 Proよりビルド速度で大幅に優れている。

M3内部での比較

  • M2 Pro 16GBとM2 Max 32GBのビルド時間比較から、メモリの影響は大きくないことを確認。
  • M3 ProとM3 Maxの性能差は価格差を正当化するほどではない。

M1・M2・M3の総合比較

  • M1、M2、M3プラットフォーム間のビルド時間比較から、M2はM1に比べて大きな改善を示した。
  • M3はM2に比べてわずかな改善にとどまる。

メモリは本当に差を生まないのか?

  • メモリはビルド時間に大きな影響を与えないことが示された。
  • リンカー時間のデータ分析により、メモリがリンク性能には影響することを確認。

M3 MacBookがやってくる!

  • 新しいSpace BlackのM3 ProノートPCが開発者の生産性向上に役立つと判断。
  • M1ユーザーは36GBメモリ搭載のM3 Proへアップグレード予定。
  • M2ユーザーは現状でも十分高性能なため、アップグレードを見送る。

GN⁺の見解

  • この調査は、開発者のビルド時間短縮が生産性向上に直接つながることを示している。
  • メモリはビルド時間に大きく影響しない一方で、リンカー時間には影響する可能性があるという発見は興味深い。
  • OpenAIを使ったデータ分析手法は、他の企業や開発者にとっても有用な事例となりうる。

1件のコメント

 
GN⁺ 2023-12-30
Hacker Newsの意見
  • 1つ目のコメント要約:

    • 文章はよく書かれており、データ収集と分析手法も多様。
    • ただし、ノートPCを並べて同一シナリオでコンパイル時間を測定したほうが、より簡単で正確だったはず。
    • 会社全体の統計を収集することはバイアスを生む可能性がある。たとえば、新入社員とベテラン社員が使うノートPCに違いがあるかもしれない。
    • サンプリングが完全にランダムでも代表的でもない可能性を指摘。
  • 2つ目のコメント要約:

    • 科学者として、プログラマーがデータを扱うやり方に関心がある。
    • 美しいグラフを描き、ChatGPTを使って分析をすばやく自動化していた。
    • しかし、メモリとチップの種類によるばらつきがあったにもかかわらず、線形回帰を使っていない。
    • ヒストグラムは作成したが比較しづらい。平均値と誤差棒を追加するか、累積分布関数を使うこともできたはず。
  • 3つ目のコメント要約:

    • 開発者の生産性向上のため、新しいノートPCの代わりに開発スタックをAWS上へオフロードするプロジェクトを進めた経験を共有。
    • これは数年にわたるプロジェクトで、最終的にはノートPCをアップグレードしたほうがよかったという結論になった。
  • 4つ目のコメント要約:

    • ChromiumとNode.jsの元主要コントリビューターで、現在はgRPC Core/C++の主要コントリビューター。
    • ビルド時間はあまり気にしていない。重要なのは画面サイズと品質、ストレージの速度。
    • 個人プロジェクトではBazelを使っており、CPUの進歩よりビルドシステムのほうが影響が大きい。
  • 5つ目のコメント要約:

    • iOS開発に関する個人的な調査結果を共有。
    • M2 ProとM1 Proの性能差は大きくない。M3 ProはM2 Proと同程度。
    • 結果として中古のM1 Proを購入し、満足している。コストパフォーマンスに優れている。
  • 6つ目のコメント要約:

    • データ分析にAIを使うことへの助言。
    • RやStataのようなツールを使うほうが、より簡単で再現性も高い。
    • データを理解し、その生成メカニズムを把握することが、データ分析で最も難しい作業。
    • 現在のAI技術にそれができるのか疑問を呈している。
  • 7つ目のコメント要約:

    • 開発者がローカルのノートPC上で完全な環境を動かせるのは大きな成果。
    • 会社でシステム全体を単一のマシン上で動かせる経験は珍しいと言及。
  • 8つ目のコメント要約:

    • 記事の著者本人によるコメント。
    • Goのコンパイルプロファイリング、ホットリローダーの構築、AIを使ったビルドデータセット分析などについて述べている。
    • M1からM3 Proへのアップグレードには価値があると結論。M2とM3の差は大きくなく、アップグレードする価値はない。
  • 9つ目のコメント要約:

    • データをCSVに書き出し、目的を説明するプロンプトとともに「アシスタント」を作成する過程について説明。
    • MicrosoftがExcelにこのプロセスを統合すれば大きな変化になるだろうという意見。
  • 10個目のコメント要約:

    • M3 ProはM2よりわずかに高性能で、M1 Proよりはかなり優れている。
    • M3は性能あたりの電力効率とレンダリング性能がより優れているが、より大きなメモリ帯域幅を持つM3 Ultraが出るまでアップグレードは待つことにした。