2017-08-11 41 views
5

有時候代碼會發現我的團隊開發分支,編譯速度很慢。當它達到幾分鐘的時間時,我們別無選擇,只能放棄我們的任務並尋找導致這種情況的原因,否則我們會在我們解決它之前浪費大量時間。如果編譯時間高於可接受的水平,是否可以創建失敗的單元測試?

對於我們的應用程序性能,我們有單元測試來阻止我們的用戶遇到緩慢時間,我想知道是否有可能設置一個測試,編譯時間太慢會導致測試失敗,導致編譯時間變慢在他們浪費整個團隊時間之前立即被識別並移除。

回答

1

您可以在項目的生成設置中添加 - >其他斯威夫特標誌以下標誌:-Xfrontend -warn-long-function-bodies=<time>其中<time>指定毫秒的量。然後,您將能夠看到任何需要更多時間並修復它們的功能的警告。

這不會讓你的測試失敗,但是當他們編碼需要很長時間編譯的代碼時,整個團隊都會意識到。

0

也許它需要一點額外的努力,但一個可能的解決方案:

我用「xcodebuild聯編乾淨的構建OTHER_SWIFT_FLAGS = 「 - Xfrontend -debug-時間函數體」 | grep「[0-9] [0-9]。[0-9] * ms」| sort -nr> culprits.txt'用編譯單個方法所需的時間來獲取文本文件。然後你知道編譯器卡住的地方,並且可以優化,直到編譯時間最長的方法是100ms。

source

相關問題