gpt4 book ai didi

objective-c - 我的程序大部分时间都花在 objc_msgSend 上。这是否意味着 Objective-C 的性能很差?

转载 作者:行者123 更新时间:2023-12-03 16:49:20 24 4
gpt4 key购买 nike

我编写了一个应用程序,它具有许多自定义 View ,并且通常绘制大量线条和位图。由于性能对于应用程序来说至关重要,因此我花了很多时间来优化绘制性能。

现在,事件监视器告诉我,我的应用程序通常使用大约 12% 的 CPU,而 Instrument(分析器)表示 objc_msgSend 花费了高达 10% 的 CPU(主要用于绘制相关的系统调用) )。

一方面,我对此感到很高兴,因为这意味着的绘图速度已经达到了最快,并且我的优化取得了巨大的成功。另一方面,这似乎意味着唯一仍在使用我的 CPU 的是 Objective-C 消息开销 (objc_msgSend)。因此,如果我用 Carbon 编写应用程序,它的性能会大大提高。

现在我很想得出这样的结论:Objective-C 是一种性能很差的语言,尽管 Cocoa 似乎非常高效,因为它的绘制速度明显比 Objective-C 发送消息的速度快。

那么,Objective-C真的是一种性能很差的语言吗?您对此有何看法?

最佳答案

不,Objective-C 的性能并没有那么糟糕。作为证据,我引用了 @bbum 关于 objc_msgSend 手工优化组装的系列文章:

  1. The Roadmap
  2. Setting the Stage
  3. The Fast Path
  4. Method Lookup and some odds and ends

换句话说,objc_msgSend 速度很快;方法调度不是你的问题。您能否发布让您相信其他情况的个人资料信息?您可能误读了分析,或者您在幕后做了一些非常奇怪的事情,等等。

但我向您保证 objc_msgSend 不是问题所在。如果是的话,我们现在肯定已经听说过它了。 :)

关于objective-c - 我的程序大部分时间都花在 objc_msgSend 上。这是否意味着 Objective-C 的性能很差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2811820/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com