- Published on
CircleCI M1 Mac パフォーマンス比較
- Authors
 - Name
- Tadashi Nemoto
- @tadashi-nemoto
 
 

この記事では、CircleCI でリリースされた M1 Mac リソースクラスのパフォーマンス比較を紹介します。
CI/CD パイプラインが M1 に対応し Apple Silicon でのビルドが可能に | CircleCI
対象アプリケーション
GitHub - tadashi0713/circleci-duckduckgo-ios: CircleCI Demo of DuckDuckGo iOS Application
このレポジトリは以下の DuckDuckGo iOS アプリ(ブラウザーアプリ)を Fork して作成しました。
GitHub - duckduckgo/iOS: DuckDuckGo iOS Application
- unit_test(ユニットテストの実行)
- integration_test(インテグレーションテスト/UI テストの実行)
- build(署名なしビルドの実行)
設定ファイル(.circleci/config.yml)は下記です
version: 2.1
orbs:
  ruby: circleci/ruby@2.0.0
  macos: circleci/macos@2.3.4
executors:
  gen2_medium:
    macos:
      xcode: 14.2.0
    resource_class: macos.x86.medium.gen2
  m1_large:
    macos:
      xcode: 14.2.0
    resource_class: macos.m1.large.gen1
jobs:
  unit_test:
    parameters:
      executor:
        type: executor
    executor: << parameters.executor >>
    steps:
      - macos/preboot-simulator:
          device: iPhone 14
          version: '16.2'
      - checkout
      - run: git submodule update --init --recursive
      - ruby/install-deps
      - run: bundle exec fastlane unit_tests
      - store_test_results:
          path: fastlane/report.xml
  integration_test:
    parameters:
      executor:
        type: executor
    executor: << parameters.executor >>
    steps:
      - macos/preboot-simulator:
          device: iPhone 14
          version: '16.2'
      - checkout
      - run: git submodule update --init --recursive
      - ruby/install-deps
      - run: bundle exec fastlane integration_tests
      - run: bundle exec fastlane atb_uitests
      - store_test_results:
          path: fastlane/report.xml
  build:
    parameters:
      executor:
        type: executor
    executor: << parameters.executor >>
    steps:
      - checkout
      - run: git submodule update --init --recursive
      - ruby/install-deps
      - run: bundle exec fastlane build
workflows:
  m1_large_workflow:
    jobs:
      - unit_test:
          executor: m1_large
      - integration_test:
          executor: m1_large
      - build:
          executor: m1_large
  gen2_medium_workflow:
    jobs:
      - unit_test:
          executor: gen2_medium
      - integration_test:
          executor: gen2_medium
      - build:
          executor: gen2_medium
Medium Gen 2
- Intel プロセッサー
- 4 CPU @ 3.2 GHZ
- 8 GB RAM
ワークフロー実行時間

CPU/RAM 使用率

M1 Large
- Apple silicon
- 8CPU
- 12GB RAM
ワークフロー実行時間

CPU/RAM 使用率
