我有一個應用程序,我正在從iOS6更新到iOS8。在這裏和那裏做了一些小的修改以完成編譯之後,我在iPad mini上運行了應用程序,發現性能顯着下降。在一些地方,過去沒有明顯延遲的事情現在經常需要2-3秒才能完成。考慮到我的iPad可能存在問題,我刪除了當前版本,並從AppStore重新下載應用程序。表現回到了以前的狀態。iOS7/iOS8中[UIImage imageNamed]的性能問題
分析代碼後,突出顯示的內容之一是[UIImage imageNamed]中的大量時間。我的應用程序對此進行了很多調用,因爲它具有室內和室外模式,要求動態加載給定視圖上的大部分圖像。在最新的SDK中發生了這種調用嗎?
當我異形的應用,這裏是吃了的時候> 70%
+(UIImage*)imageNamed:(NSString*)rootName extension:(NSString*)extension
{
NSString* typeName = _isIndoor ? @"inside" : @"outside";
NSString* fullName = [NSString stringWithFormat:@"%@-%@.%@", rootName, typeName, extension];
UIImage* result = [UIImage imageNamed:fullName];
if (result == nil) {
NSLog(@"Missing image [name: %@]", fullName);
}
return result;
}
其他一些筆記方法:
- 原來的應用程序工作正常,在我的第一代iPad迷你運行iOS8
- 該應用程序目前不使用ARC,但我測試切換到ARC w /沒有改善(不奇怪)
- 該應用程序不使用資產目錄,bu T I試圖轉換使用資產目錄瓦特/沒有改善(也並不奇怪)
- 我做了一些google搜索,但未能找到任何人有相同的問題