Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Xcode 15 で swift run が遅い
Search
tokizo
November 08, 2023
0
3.7k
Xcode 15 で swift run が遅い
tokizo
November 08, 2023
Tweet
Share
More Decks by tokizo
See All by tokizo
徐々に増えているSwiftUI Anchor関連API
tokizuoh
1
860
iOS 曜日ランキングが出来上がるまで
tokizuoh
0
2.4k
メインスレッドをブロックさせないためのSwift Concurrencyクイズ
tokizuoh
1
5.4k
運動モチベーション継続のためのiOSアプリ開発
tokizuoh
0
990
モノレポにおける path-filtering利用時でも GitHub ステータスのRequiredを 機能させたい!
tokizuoh
1
1.5k
累積和で配列の処理効率を改善しよう
tokizuoh
0
670
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
GraphQLとの向き合い方2022年版
quramy
50
14k
We Have a Design System, Now What?
morganepeng
54
7.9k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Building Flexible Design Systems
yeseniaperezcruz
330
39k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
70k
Writing Fast Ruby
sferik
630
62k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
Transcript
Xcode 15 で swift run が遅い tokizo / @tokizuoh 2023/11/08
YUMEMI.grow Mobile #8 1
自己紹介 • tokizo (@tokizuoh) ◦ https://info.tokizuoh.dev/ • 株式会社はてな ◦ マンガアプリチーム
◦ モバイルアプリケーションエンジニア 2
話す内容 3 https://forums.swift.org/t/swift-run-really-slow/67807
話す内容 • Xcode 15 で swift run の実行に3秒以上 掛かっていて遅い ◦
“Hello, World!” を出力するだけで3秒 • 考えられる原因 4
5 swift run とは
swift run とは • SwiftPM で executable product, macroを ビルド・実行するコマンド
• executable product は所謂 CLIツール ◦ コマンドラインから実行できるネイティブバイナリを 作成する 6
7 著名な executable product
著名な 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
本題 9
swift run 遅い 10
swift run 遅い 1. Xcode 15 で swift package init
--type executable を実行 2. swift run を実行すると3秒以上掛かる 11
swift run 遅い 12
毎回3秒 13
困る 14
原因を探す 15
原因を探す • swift run には -vv (very verbose) オプ ションがある
◦ コマンド実行時にデバッグ出力 ◦ 内部で実行するコマンドの表示 • 実行すると、/usr/bin/xcrun --sdk xros --show-sdk-platform-path に時間 が掛かっていることが分かる 16
/usr/bin/xcrun --sdk xros --show-sdk-platform-path 17
/usr/bin/xcrun --sdk xros --show-sdk-platform-path 18
“xros” 19
“xros” 20 https://github.com/apple/swift-package-manager/blob/828121137f394125d 03d5ab1e12df869b346bdcd/Sources/PackageModel/MinimumDeploymentTar get.swift#L89-L90
visionOS 21
visionOS 22 https://developer.apple.com/jp/visionos/
visionOS の SDK は Xcode 15 に存在しない 23
visionOS の SDK は Xcode 15 に存在しない 24
Xcode 15 beta には存在 する 25
Xcode 15 beta には存在する 26
Xcode 15 beta で swift run 27
Xcode 15 beta で swift run 28
Xcode 15 から Xcode 15 beta に変えたら 3秒台から0.4秒に 29
原因が分かって めでたい 30
おわり • Xcode 15 で使われている SwiftPM は swift run 時に
visionOS の SDK を探すが、 Xcode 15 に存在せず、処理に時間がかかる ◦ xcrun の内部挙動は不明だが、一定時間探索して 打ち切っているか、決められた範囲の探索が全て 行われていそう 31
おわり • Xcode 15 beta には visionOS の SDK が存在
するため、処理に時間はかからない • 根本解決するには? ◦ SwiftPM にコントリビュートする ▪ 原因を見つけたのは11/5(日)で tokizo は まだ手がつけられていない! 32