Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Xcode 15 で swift run が遅い

tokizo
November 08, 2023
3.5k

Xcode 15 で swift run が遅い

tokizo

November 08, 2023
Tweet

Transcript

  1. 話す内容 • Xcode 15 で swift run の実行に3秒以上 掛かっていて遅い ◦

    “Hello, World!” を出力するだけで3秒 • 考えられる原因 4
  2. swift run とは • SwiftPM で executable product, macroを ビルド・実行するコマンド

    • executable product は所謂 CLIツール ◦ コマンドラインから実行できるネイティブバイナリを 作成する 6
  3. 著名な executable product • uber/mockolo ◦ モック生成 ◦ https://github.com/uber/mockolo/blob/master/ Package.swift

    • apollographql/apollo-ios-codegen ◦ GraphQL のスキーマから Swift ファイル生成 ◦ https://github.com/apollographql/apollo-ios-co degen/blob/main/Package.swift 8
  4. swift run 遅い 1. Xcode 15 で swift package init

    --type executable を実行 2. swift run を実行すると3秒以上掛かる 11
  5. 原因を探す • swift run には -vv (very verbose) オプ ションがある

    ◦ コマンド実行時にデバッグ出力 ◦ 内部で実行するコマンドの表示 • 実行すると、/usr/bin/xcrun --sdk xros --show-sdk-platform-path に時間 が掛かっていることが分かる 16
  6. おわり • Xcode 15 で使われている SwiftPM は swift run 時に

    visionOS の SDK を探すが、 Xcode 15 に存在せず、処理に時間がかかる ◦ xcrun の内部挙動は不明だが、一定時間探索して 打ち切っているか、決められた範囲の探索が全て 行われていそう 31
  7. おわり • Xcode 15 beta には visionOS の SDK が存在

    するため、処理に時間はかからない • 根本解決するには? ◦ SwiftPM にコントリビュートする ▪ 原因を見つけたのは11/5(日)で tokizo は まだ手がつけられていない! 32