我几乎到处寻找这种奇怪情况的可能答案,没有运气。我有1000个文件(每个14个字节,用于测试目的)位于我的应用程序的Documents目录中的文件夹中。使用下面的代码,我获取文件夹的内容,遍历每个文件URL,创建一个表示名为FFFile的文件的自定义模型对象,并将其创建到容器数组中。为清楚起见,我简化了这种方法。
这一切都运行良好并且符合我的预期,但是,最奇怪的部分是这个代码需要0.775秒才能在iPhone 5上执行,而WHOPPING需要2.378秒才能在iPhone 5S上执行!一般的假设是iPhone 5S会更快,不是吗?两个设备都使用完全相同的文件,文件夹结构,代码等...
我不太了解iPhone 5S的64位架构如何影响以下代码的性能,所以对这个奇怪的案例(对我来说很奇怪)的任何见解都将非常感激。谢谢你看看。
更新:iPhone 5和iPhone 5S都运行iOS 7.0.3。
static NSArray *keys;
keys = @[
NSURLNameKey,
NSURLTypeIdentifierKey,
NSURLLocalizedTypeDescriptionKey,
NSURLIsDirectoryKey,
NSURLCreationDateKey,
NSURLContentModificationDateKey,
NSURLFileSizeKey,
];
// url = ".../Documents/Folder/";
NSMutableArray *fileContainer = [NSMutableArray new];
NSArray *results = [[NSFileManager defaultManager] contentsOfDirectoryAtURL:url includingPropertiesForKeys:keys options:0 error:nil];
for (NSURL *url in contents) {
NSDictionary *properties = [url resourceValuesForKeys:keys error:nil];
FFFile *file = [[FFFile alloc] init];
file.fileURL = url;
file.isDirectory = [properties[NSURLIsDirectoryKey] boolValue];
file.filename = properties[NSURLNameKey];
file.fileSize = properties[NSURLFileSizeKey];
file.typeIdentifier = properties[NSURLTypeIdentifierKey];
file.typeDescription = properties[NSURLLocalizedTypeDescriptionKey];
file.creationDate = properties[NSURLCreationDateKey];
file.modificationDate = properties[NSURLContentModificationDateKey];
[fileContainer addObject:file];
}