【问题标题】:XCode 8 is really slow to compile, SourceKitService uses 300+ % CPUXCode 8 编译速度真的很慢,SourceKitService 使用 300+ % CPU
【发布时间】:2017-02-18 01:33:35
【问题描述】:

我的 Xcode 编译起来真的很慢。 Activity 监视器显示 SourceKitService 的 CPU 使用率约为 330%,swift 的 CPU 使用率为 100%。那里有什么异常吗?

我已经阅读了 SourceKitService 可能难以猜测数组和字典类型的一些地方,因此我将尝试使它们更加明确。由于这些帖子来自 Xcode 5-6,我想知道这是否仍然是一个问题

【问题讨论】:

标签: ios xcode compilation


【解决方案1】:

感谢@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)
}

而且效果很好。我会用 Apple 打开一个错误

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多