我想我的應用程序轉換爲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