Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Xcode 15 で swift run が遅い
Search
tokizo
November 08, 2023
3.9k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Xcode 15 で swift run が遅い
tokizo
November 08, 2023
More Decks by tokizo
See All by tokizo
徐々に増えているSwiftUI Anchor関連API
tokizuoh
1
1.2k
iOS 曜日ランキングが出来上がるまで
tokizuoh
0
2.8k
メインスレッドをブロックさせないためのSwift Concurrencyクイズ
tokizuoh
1
6k
運動モチベーション継続のためのiOSアプリ開発
tokizuoh
0
1.1k
モノレポにおける path-filtering利用時でも GitHub ステータスのRequiredを 機能させたい!
tokizuoh
1
1.6k
累積和で配列の処理効率を改善しよう
tokizuoh
0
760
Featured
See All Featured
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
260
Visualization
eitanlees
153
17k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.3k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
Faster Mobile Websites
deanohume
310
32k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
750
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
390
Skip the Path - Find Your Career Trail
mkilby
1
240
Git: the NoSQL Database
bkeepers
PRO
432
67k
Navigating Team Friction
lara
192
16k
The untapped power of vector embeddings
frankvandijk
2
1.9k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
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