objective-c - 编写许多小方法对 Objective-C 有性能影响吗?

标签 objective-c performance dynamic-dispatch

我来自Ruby,有点采用了单一职责原则、封装、松散耦合、小型可测试方法等方法论,所以我的代码往往会频繁地从一个方法跳到另一个方法。这就是我在 Ruby 世界中习惯的工作方式。我认为这是最好的工作方式,主要是针对 BDD,因为一旦您开始拥有执行多项操作的“大型”方法,测试就会变得非常困难。

我想知道就性能的显着差异而言,这种方法是否有任何缺点?

最佳答案

是的,总会有一些性能影响,除非你有一个内联东西的编译器,但如果你做动态方法查找(比如 Ruby 和 Obj-C),你不能内联,所以会有一些影响。但是,这实际上取决于语言和调用约定。如果你在 Objective-C 中有一个调用,你知道开销将是一次使用 C 调用约定的开销(调用 objc_msg_send),然后是方法查找,然后是某种跳转(很可能也是 C 调用约定,但可以是任何东西)。不过,您必须记住,除非您编写的是 C 语言和汇编语言,否则几乎看不出任何区别。

关于objective-c - 编写许多小方法对 Objective-C 有性能影响吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12031249/

相关文章:

objective-c - 如何将纬度经度转换为 CLLocationCoordinate2D

iOS,图片缩略图,Big Nerd Ranch,第 19 章

postgresql - 使用 LEFT JOIN 和子查询提高 PostgreSQL 查询的性能

performance - 为什么 perl 比 d 语言快?

css - 在网络上加载高分辨率图像是否有良好的非阻塞模式?

ios - 按下锁定按钮的 View Controller 方法?

iOS:启动由 AppDelegate 处理的自定义消息

rust - “associated type … must be specified”,但未使用

rust - 如何使用以迭代器为参数的方法进行动态调度?