2017-02-18 39 views
0

我的Xcode編譯真的很慢。活動監視器指示SourceKitService的〜330%CPU使用率和swift的100%。那裏有什麼異常嗎?XCode 8編譯起來非常慢,SourceKitService使用300+%的CPU

我讀過幾個地方,SourceKitService可以掙扎猜測數組和字典類型,所以我會盡量讓它們更明確。由於這些帖子是從Xcode 5-6我想知道如果這仍然是一個問題

+1

查看此工具由羅伯特Gummesson:https://github.com/RobertGummesson/BuildTimeAnalyzer-for-Xcode –

+1

謝謝這是偉大的。我重寫了幾個三元條件/聚結,現在情況好多了。從5百萬建造時間到10多年...... – Guig

回答

3

感謝@Mike鏈接到構建時間分析器,這是偉大的。原來的XCode採取330秒只是編譯:

func asJson() -> JSON { 
    let dict: [String: Any?] = [ 
     "video": video.asJson, 
     "asset": asset.url.path, 
     "canBeShared": canBeShared, 
     "videoSource": videoSource.path, 
     "previewSource": previewSource.documentPath, 
     "expectedResizedVideo": expectedResizedVideo.documentPath, 
     "videoDestination": videoDestination, 
     "previewDestination": previewDestination, 
     "fileId": fileId, 
     "isRecordCreated": isRecordCreated, 
     "isPreviewUploaded": isPreviewUploaded, 
     "isPreviewRegistered": isPreviewRegistered, 
     "isSharingPreviewReady": isSharingPreviewReady, 
     "isVideoUploaded": isVideoUploaded, 
     "isVideoRegistered": isVideoRegistered, 
     "isPosted": isPosted, 
     "isPostRegistered": isPostRegistered, 
     "didResizeVideo": didResizeVideo, 
    ] 
    return JSON(dict) 
} 

我重寫

func asJson() -> JSON { 
    var dict = [String: Any?]() 
    dict["video"] = video.asJson 
    dict["asset"] = asset.url.path 
    dict["canBeShared"] = canBeShared 
    dict["videoSource"] = videoSource.path 
    dict["previewSource"] = previewSource.documentPath 
    dict["expectedResizedVideo"] = expectedResizedVideo.documentPath 
    dict["videoDestination"] = videoDestination 
    dict["previewDestination"] = previewDestination 
    dict["fileId"] = fileId 
    dict["isRecordCreated"] = isRecordCreated 
    dict["isPreviewUploaded"] = isPreviewUploaded 
    dict["isPreviewRegistered"] = isPreviewRegistered 
    dict["isSharingPreviewReady"] = isSharingPreviewReady 
    dict["isVideoUploaded"] = isVideoUploaded 
    dict["isVideoRegistered"] = isVideoRegistered 
    dict["isPosted"] = isPosted 
    dict["isPostRegistered"] = isPostRegistered 
    dict["didResizeVideo"] = didResizeVideo 
    return JSON(dict) 
} 

而且工作得很好。我會打開一個與蘋果的錯誤