在Swift中fileprivate Extensions和Types是否会改善编译时间?

时间:2016-12-23 17:16:28

标签: ios swift performance compile-time

如果我将扩展和私有类型限制在单个Swift文件中,因为我只需要在一个文件中,它会改善编译时间和/或性能吗?或者Swift编译器是如此智能并且根本不重要?

实施例: 一个iOS Xcode项目,包含超过600个Swift文件(中等规模的项目)和现有的网络类:

NetworkController.swift

class NetworkController {
    let queue = OperationQueue()

    func add(_ op: Operation) {
        queue.addOperation(op)
    }
}

现在我需要添加一个只执行遗留操作的新类。这意味着iOS应用程序中的所有其他组件永远不会需要它。

LegacyController.swift(所有内容都放在同一个文件中)

internal final class LegacyController {
    let network = NetworkController()

    func start() {
        network.requestSomeLegacyStuff {
            print("blub")
        }
        // do lots of other work here ...
    }
}

extension NetworkController {
    fileprivate func requestSomeLegacyStuff(success: () -> Void) {
        let operation = RequestLegacyDataOperation()

        add(operation)
    }
}

fileprivate final class RequestLegacyDataOperation: Operation {
    // do lots of work here ...
}

VERSUS 将它们放入自己的文件中以获得更好的可见性和分离,但是需要更改为internal范围,这根本不需要。

LegacyController.swift

internal final class LegacyController {
    let network = NetworkController()

    func start() {
        network.requestSomeLegacyStuff {
            print("blub")
        }
        // do lots of other work here ...
    }
}

NetworkController + LegacyStuff.swift

extension NetworkController {
    internal func requestSomeLegacyStuff(success: () -> Void) {
        let operation = RequestLegacyDataOperation()

        add(operation)
    }
}

RequestLegacyDataOperation.swift

internal final class RequestLegacyDataOperation: Operation {
    // do lots of work here ...
}

0 个答案:

没有答案