我想我的应用程序转换为ARC但是当我做它由5 :(ARC为什么让我的应用程序如此缓慢?
的因素放慢了我的图形视图我有这个代码块遍历所有的点:
NSLog(@"%f", CACurrentMediaTime());
for (NSUInteger xIndex = firstXValueOnScreen; xIndex <= lastXValueOnScreen; xIndex++)
{
float value = 5; //This used to call a function to get the value but I took out the function call to better demonstrate that this seems to be just a general slowdown...
if (extremesUninitialized)
{
yMax = value;
yMin = value;
extremesUninitialized = NO;
}
else
{
yMax = MAX(yMax, v,alue);
yMin = MIN(yMin, value);
}
}
NSLog(@"%f", CACurrentMediaTime());
在ARC之前执行大约0.01秒,然后我使用ARC转换器,它很好地将我的代码转换为ARC,之后我在相同的环境下运行相同的代码,得到.05的结果秒!它减慢了5倍......所以我从快照中恢复了我的旧项目,所以没有更多的ARC,并且做了10次测试,总是得到0.1秒的结果,然后我将它转换回来到ARC a一直得到.05秒。 XCode在这里没有给我任何线索,为什么会发生这种情况......但是我的其他代码也在放缓。可能会发生什么?
你真的不应该使用ARC,特别是如果你是初学者。 – 2012-08-09 21:15:28
这只是纯粹的C,所以ARC在这里不应该有所作为。所以如果这段代码实际运行速度较慢,我会非常惊讶。为了更好地进行测试,您应该多次运行上述代码(例如循环1000次),以便您的结果更准确。你上面提到的所有变量都只是本地的,还是一些ivars?而@ H2CO3,这是无稽之谈,ARC是为了让事情变得更简单 - 所以对初学者来说这很好。 – pheelicks 2012-08-09 21:33:21
呃? ARC适合初学者!这就是为什么它是新项目的默认值,以及为什么分析器,编译器和工具链的其余部分都围绕ARC进行了优化。 – bbum 2012-08-09 22:07:01