2017-02-18 40 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) 
} 

而且工作得很好。我会打开一个与苹果的错误