gpt4 book ai didi

objective-c - Profiler 告诉我与 nil 的比较速度很慢

转载 作者:可可西里 更新时间:2023-11-01 05:38:08 25 4
gpt4 key购买 nike

我有一个方法可以检查 NSData 的值,如下所示:

if (data == nil) {

//Method

}

但是,尽管方法中包含所有内容,但事实证明,超过 80% 的时间花在了第一行,检查 data 是否等于 nil。有没有更有效的方法来做到这一点?

截图: enter image description here

最佳答案

这不是与 nil 的直接比较。它是一行中的多个语句。

划分问题的一种方法是划分陈述。您还可以进入您的实现。简而言之,分析器的突出显示被误解了。

分解:

NSData * thumbnailData = self.thumbnail;
NSUInteger length = thumbnailData.length;

访问属性不会花费太多时间。

访问长度应该不会花费太多时间(假设这是不可变数据)。

我怀疑 self.thumbnail 中可能有一些延迟加载。但是,如果您深入了解实现,探查器将为您提供更多详细信息。

最后一点是,它可以在方法的本地进行解释。如果该方法不是热点并且上述方法确实不起作用,则通常意味着“通常在您调用此方法时加载缩略图”。

关于objective-c - Profiler 告诉我与 nil 的比较速度很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10765765/

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