Iphone 调用实例方法比调用类方法通常更快吗?

Iphone 调用实例方法比调用类方法通常更快吗?,iphone,objective-c,cocoa-touch,performance,Iphone,Objective C,Cocoa Touch,Performance,今天我遇到了一件奇怪的事情:我试图将一个实用方法作为类方法放入实用类中,这样我就可以简单地调用该方法,轻松地生成一个方便的UIView(不是imageNamed方法,而是另一个更复杂的方法)。太可怕了。演出糟得令人难以置信。然后我用它创建了一个实例方法,创建了该类的一个实例,并调用了实例方法。演出突然精彩起来。真奇怪 你对这类东西有什么经验?你的情况还有些别的。方法调用是有区别的,我怀疑类方法和实例方法在性能上是否有明显的区别。至少,在我的经历中,我从来没有看到过两者之间的区别 性能下降的原因通

今天我遇到了一件奇怪的事情:我试图将一个实用方法作为类方法放入实用类中,这样我就可以简单地调用该方法,轻松地生成一个方便的UIView(不是imageNamed方法,而是另一个更复杂的方法)。太可怕了。演出糟得令人难以置信。然后我用它创建了一个实例方法,创建了该类的一个实例,并调用了实例方法。演出突然精彩起来。真奇怪


你对这类东西有什么经验?

你的情况还有些别的。方法调用是有区别的,我怀疑类方法和实例方法在性能上是否有明显的区别。至少,在我的经历中,我从来没有看到过两者之间的区别


性能下降的原因通常不是它们最初出现的原因,因此我建议您针对Instruments或Shark运行应用程序,看看在这种情况下瓶颈在哪里。我的猜测是,您正在使用类方法方法分配内存,而实例方法中没有分配内存,这是iPhone上最昂贵的操作之一。

确实有一点不同。我没看见。有一次我用objectWithFooBar,在另一个例子中,我做了一对alloc init。但是:objectWithFooBar的东西不是在内部为我做alloc+init吗?实际上应该是一样的:分配内存。详细地说,我创建了一个UIImage。