首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有任何方法来检查目标-c提供的方法的时间复杂性?

是否有任何方法来检查目标-c提供的方法的时间复杂性?
EN

Stack Overflow用户
提问于 2016-01-06 18:05:42
回答 1查看 756关注 0票数 2

实际上,有时需要您编写一些自定义代码来实现某些功能,有两种可能的方法:

  1. 通过加入已经给出的目标-c方法来实现。
  2. 编写自定义代码

此时,我搞不懂哪一个代码库(在性能上)更好,只有幸运地找到了Objective方法的Time-Complexity,才能决定这一点。有没有办法知道这件事?

EN

回答 1

Stack Overflow用户

发布于 2016-01-06 22:17:31

在iOS (和其他苹果平台)的SDK中可以调用很多方法和函数,因此这个问题可能过于宽泛。

但是,对时间复杂性的讨论通常是关于算法复杂性的,因此我们可以将我们的范围限制在那些作为算法构建块的调用上,在这些调用中,我们将时间度量为输入大小的函数--也就是说,像集合操作之类的东西,而不是UIApplication registerForRemoteNotifications

然而,总的来说,苹果并没有过多谈论Cocoa中高级数据结构的计算复杂性。这可能与Cocoa的设计目标非常倾向于封装有关,简单的接口隐藏了强大的、动态的、可能具有适应性的实现。研究CoreFoundation -- Cocoa的核心部分的开源实现,比如集合--就证明了这一点。这是一篇很棒的文章关于NSArray是如何有时是O(1),有时不是。

当然,对于一种哲学来说,你不应该关心你所使用的工具的复杂性--告诉它你想做什么,而不是你想怎么做,让它为你优化性能,因为它可以比你自己更好地猜测你。它符合避免过早优化的哲学。

另一方面,有一种哲学也有一定的意义,那就是拥有强制的、可预测的复杂性的基本构建块,这样您就可以更容易地规划从它们构建的算法的复杂性。为了表明苹果似乎两种方式都这么做,这似乎是选择斯威夫特标准图书馆的哲学。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34639748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档