LoginSignup
1
0

More than 1 year has passed since last update.

Spresense開発環境のビルド時間を比較してみた

Last updated at Posted at 2021-11-15

Spresense SDK開発環境のビルド実行時間をプラットフォームごとに比較してみました。

実行環境

  • Windows PCのスペック

    • OS: Windows 10 Pro 64 ビット
    • プロセッサ: Intel Core i7-10700 @ 2.90GHz
    • メモリ: 16GB
  • Linux PCのスペック

    • OS: Ubuntu 16.04
    • プロセッサ: Intel Core i7-4770 @ 3.40GHz
    • メモリ: 8GB
  • M1 Macのスペック

    • OS: macOS Big Sur 11.6
    • プロセッサ: Apple M1
    • メモリ: 8GB
  • VirtualBox(1)の設定

    • Windows PC に Ubuntu20.04 インストール
    • Main Memory: 4GB
    • プロセッサ数: 1
    • マザーボード チップセット: PIIX3
  • VirtualBox(2)の設定

    • Windows PC に Ubuntu20.04 インストール
    • Main Memory: 4GB
    • プロセッサ数: 4
    • マザーボード チップセット: ICH9

実行コマンド

①〜④の実行コマンドを以下に示します。実行時間は単純にtimeコマンドで計測しています。

① コンフィグレーション
例として、Arduinoパッケージを作成するためのコンフィグレーションを実行したときの時間を計測します。コマンド実行中に、ネットワーク越しにzipのダウンロードも行っていてその時間も含まれます。

config.py
time ./tools/config.py default device/adc device/camera device/charger device/emmc device/hostif device/pwm device/sdcard feature/asmp feature/audio_player feature/audio_recorder feature/audio_recognizer feature/audio_synthesizer feature/dnnrt_mp feature/gnss feature/imageproc feature/libcxx feature/lte_stub_mbedtls feature/step_counter feature/digital_filters -- +CXD56_I2C_DRIVER=n +CXD56_I2C1 +CXD56_I2C1_SCUSEQ=n +CXD56_LTE_LATE_INITIALIZE=y +CXD56_HPADC0_INPUT_GAIN_M6DB +CXD56_HPADC1_INPUT_GAIN_M6DB +CXD56_USE_SYSBUS=n -LTE_SYSCTL=y

② フルビルド
①のコンフィグレーション実行後のフルビルド時間を計測します。

make
time make -j

③ 再ビルド
②でフルビルド済みの状態からソースコードを何も変更せずに再度ビルドを実行した時間を計測します。

make
time make -j

④ distclean
コンフィグレーションファイルの削除を含めてクリーンビルドを実行したときの時間を計測します。

distclean
time make -j distclean

実行結果

(単位:秒)

環境 MSYS2 WSL WSL2 Linux M1 Mac (x86_64) M1 Mac (arm64) Virtual Box(1) Virtual Box(2)
① コンフィグレーション 96.723 23.816 2.245 3.789 6.657 6.461 3.623 3.960
② フルビルド 262.530 80.102 17.194 34.747 84.001 47.073 130.303 40.734
③ 再ビルド 158.166 37.430 3.640 5.457 11.833 12.107 18.129 9.487
④ distclean 167.876 39.336 2.889 6.103 17.699 17.641 40.205 12.193

スクリーンショット 2022-01-06 1.16.43.png

感想

  • WSL2最強説! (参考:WSL2でSpresense開発環境を構築する)
    • WSLに比べても圧倒的に速いです。
    • VirtualBoxも遅い...設定次第で大きく変わる
  • MSYS2環境を使うのは止めた方が良い。 "Time is Money."
  • M1 MacはRosetta2経由のx86版とネイティブarm64版の両方のgccで実測
    • ネイティブ版の方がコンパイルは2倍ぐらい速そう

このベンチマーク結果はPCスペックやアンチウィルスソフトの影響などにも依存するのであくまで参考値です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0