2015-07-20 56 views
14

有沒有辦法在xcode編譯期間將輸出轉換爲編譯swift文件所需的時間?快速文件的輸出編譯持續時間

我想從命令行編譯來觸發相同的編譯xcode,但要包括編譯每個文件所花費的時間。

Report Navigator顯示每個文件的完整構建報告,但沒有與它們相關的時間框架。

由於看起來和加載狀態等因素,它在編譯時間上並不清楚,因爲它更爲貼心。

我想減少Swift 1.2項目的編譯時間,因爲它需要大約5到10分鐘的清理後或3-5分鐘後在一個嚴重依賴的文件中更改源。

+2

[斯威夫特隱藏選項](http://www.robertvojta.com/2015/06/ 30/swift-hidden-options /),只需在Swift Compiler - Custom Flags_部分添加'-Xfrontend -debug-time-function-bodies'到_Other Swift Flags。 – robertvojta

+0

非常感謝! :) – jarryd

+0

你應該使評論成爲一個答案,它會幫助很多人。好帖子/網站 – jarryd

回答

36

您可以添加...斯威夫特編譯

-Xfrontend -debug-time-function-bodies 

...到其他斯威夫特標誌 - 自定義標記部分(構建設置)。

Build settings

注意:您必須保留這些標誌的順序相同。 -Xfrontend表示應將下一個標誌傳遞給前端。如果您逆轉訂單,它將不起作用。

然後你可以在你的生成日誌編譯時間:

Build log

當你想優化的編譯時間並且還報告一個問題,當是很好的附着這種生成日誌的,這是有用到Apple Swift guys關於編譯時間慢。

信用轉至Joe PamerErrant編譯器黑客。目前是蘋果公司(Swift,Clang)的工程經理,以前在微軟(TypeScript,F#,JavaScript,.NET)。他在Twitter上發佈了關於分析Swift編譯問題的回覆。它讓我好奇,於是,我拆開編譯器,檢查了更多標誌的文本部分,發現other hidden options。不要在生產代碼中使用它們,只要與它們一起玩。


整個項目的建造時間。以下運行在終端命令

defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES 

...重啓Xcode中,清潔&構建和...

Build time

+0

謝謝。在掃描大約5個類的編譯日誌後,很難管理。有沒有辦法輸出每個文件的總時間? – jarryd

+0

更新了我的答案,並附有說明如何衡量整個項目構建時間(不支持的功能,可以在任何未來版本中打破)。檢查是否有辦法測量單個文件。 – robertvojta

+1

要關閉此案例,沒有開關或plist設置可以爲每個文件輸出編譯時間。或者我沒有找到它。也許你可以用一些shell腳本來包裝swift [c]來衡量它(沒有嘗試)。 – robertvojta