【问题标题】:Can Xcode and iPhone handle hundreds of static libraries?Xcode 和 iPhone 可以处理数百个静态库吗?
【发布时间】:2011-03-24 00:32:05
【问题描述】:

我正在努力控制 xcode 混乱。即,如何在项目之间重用我的小组件/类。一种策略是将每个类或紧密耦合的类集合放入一个静态库中,每个类都是不同子项目的衍生品,具有一些目标,例如单元测试、演示,当然还有库。

按照现在的样子,我可以看到由一些自定义代码组成的最终应用程序,比如说,几百个库。这让我害怕,但应该吗?性能会受到影响吗?多库方法是否存在其他限制使其不切实际?

【问题讨论】:

  • 澄清一下 - 对于这个问题,我只对拥有大量库的技术缺点感兴趣,最好是来自在项目中拥有 10 或 20 个库的第一手经验的人。拥有大量库会导致任何性能损失吗?它们是上限吗?问问自己,如果你有脚本,你能做一个有 10,000 个库的项目吗?它会运行吗?

标签: iphone xcode static-libraries


【解决方案1】:

拥有 100 个静态库并不能控制混乱,反而会使情况变得更糟。将代码逻辑分组到静态库是一个好主意,但每个类一个太细了。 100 个库等于数百个项目,需要大量维护。

【讨论】:

  • 它必须在某些时候对性能产生一些影响,因为 xcode 要做的工作更多。我不会浪费时间尝试它,但您可以自己尝试并在此处报告您的发现:)
【解决方案2】:

如果您关心的是可管理性,您是否考虑过使用 svn:externals 或 git 子模块?

它是来自与树的其余部分不同的存储库的子目录,因此除了仅用于测试共享代码的项目之外,您还可以拥有多个项目都使用最新版本的共享代码。文件层次结构类似于:

测试/

  • 共享代码/
  • 测试代码/

项目 1/

  • shared-code/
  • p1-specific-code/

项目 2/

  • shared-code/
  • p2-specific-code/

使用 svn:externals 标记时需要做一些 svn 舞蹈,我相信 git 子模块在将其内容更新到 HEAD 时需要不同的舞蹈,但这些都远不是让公共代码保持同步所涉及的头痛问题多个项目。

【讨论】:

  • 我对管理复杂性的技术很感兴趣,不幸的是,我太熟悉 git 和 svn 的优缺点。在某些情况下,这些可能是很棒的技术。现在,对于这个问题,我只对拥有大量库的技术可行性感兴趣。一些技术的速度会呈指数级增长,我想知道添加库是否适合该类别,并希望找到具有第一手经验的人。
【解决方案3】:

经过一些离线讨论后,一致认为 100 多个库不会减慢执行速度,但在链接过程中可能会很痛苦。

管理大量库的复杂性当然可能会使解决方案变得比疾病更糟。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    • 2012-08-11
    • 2014-08-30
    • 2011-04-16
    相关资源
    最近更新 更多