Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 针对磁盘查找的核心数据提取性能_Objective C_Ios_Core Data_Nsfilemanager - Fatal编程技术网

Objective c 针对磁盘查找的核心数据提取性能

Objective c 针对磁盘查找的核心数据提取性能,objective-c,ios,core-data,nsfilemanager,Objective C,Ios,Core Data,Nsfilemanager,我想知道是否有人对什么性能更好有一些见解:进行核心数据提取或查找磁盘上的文件 我所处的情况是下载记录,每一条记录上都有一个图像。但是不同的记录可以有相同的图像,所以我不想下载两次图像。我正在将图像保存到磁盘,并使用NSManagedObject保存web url和本地文件路径 为了避免再次拨打网络电话,我可以 答:执行一次核心数据提取,看看我是否已经有了基于web url的图像 NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequest

我想知道是否有人对什么性能更好有一些见解:进行核心数据提取或查找磁盘上的文件

我所处的情况是下载记录,每一条记录上都有一个图像。但是不同的记录可以有相同的图像,所以我不想下载两次图像。我正在将图像保存到磁盘,并使用NSManagedObject保存web url和本地文件路径

为了避免再次拨打网络电话,我可以

答:执行一次核心数据提取,看看我是否已经有了基于web url的图像

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:NSStringFromClass([Image class])];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"web_url == %@", myRecord.image_url];
B:从本地文件路径查找磁盘上的映像数据

NSFileManager *fileManager = [NSFileManager defaultManager];
NSData *photoData = [fileManager contentsAtPath:myRecord.photo_path];

另外,仪器中有什么东西可以让我计算这些时间吗?这将是一个方便的工具,知道如何在未来使用。谢谢。

在这篇NSHipster文章中,我终于在用户提交的用于测量执行时间的宏的帮助下进行了测试

正在测试的代码如下所示

__block NSData *photoData;
const char *caller = "filemanager";
MVComputeTimeWithNameAndBlock(caller, ^{
NSFileManager *fileManager = [NSFileManager defaultManager];
photoData = [fileManager contentsAtPath:[self createLocalFilePath:myRecord.photo_path]];
});

caller = "coredata";
MVComputeTimeWithNameAndBlock(caller, ^{
    NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:NSStringFromClass([Image class])];
    fetchRequest.predicate = [NSPredicate predicateWithFormat:@"web_url == %@", myRecord.image_url];
    NSError *error;
    NSArray *arr = [[self managedObjectContext] executeFetchRequest:fetchRequest error:&error];
    if([arr count]){
        Image *photo = arr[0];
    }
});
2013-01-25 14:31:06.359 FormulaOne[26554:12b03]文件管理器-运行时间为:0.000325 2013-01-25 14:31:06.359公式一[26554:12b03]核心数据-运行时间为:0.000491 2013-01-25 14:31:11.958 FormulaOne[26554:12b03]文件管理器-运行时间为:0.000178 2013-01-25 14:31:11.959公式一[26554:12b03]核心数据-运行时间为:0.000417 2013-01-25 14:31:14.840 FormulaOne[26554:12b03]文件管理器-运行时间为:0.000187 2013-01-25 14:31:14.841公式一[26554:12b03]核心数据-运行时间为:0.000421 2013-01-25 14:33:10.869 FormulaOne[26554:12b03]文件管理器-运行时间为:0.000193 2013-01-25 14:33:10.870公式一[26554:12b03]核心数据-运行时间为:0.000540 2013-01-25 14:33:13.087 FormulaOne[26554:12b03]文件管理器-运行时间为:0.000170 2013-01-25 14:33:13.088公式一[26554:12b03]核心数据-运行时间为:0.000392

我把它换成了

int count = [[self managedObjectContext] countForFetchRequest:fetchRequest error:&error];
因为我并不需要这个物体,我只需要知道它的存在。事实上,时机更糟

2013-01-25 14:36:27.760 FormulaOne[28209:12b03]文件管理器-运行时间为:0.000346 2013-01-25 14:36:27.761公式一[28209:12b03]核心数据-运行时间为:0.000601 2013-01-25 14:36:29.978 FormulaOne[28209:12b03]文件管理器-运行时间为:0.000182 2013-01-25 14:36:29.979公式一[28209:12b03]核心数据-运行时间为:0.000479 2013-01-25 14:36:31.585 FormulaOne[28209:12b03]文件管理器-运行时间为:0.000265 2013-01-25 14:36:31.586公式一[28209:12b03]核心数据-运行时间为:0.000400 2013-01-25 14:36:34.923 FormulaOne[28209:12b03]文件管理器-运行时间为:0.000307 2013-01-25 14:36:34.924公式一[28209:12b03]核心数据-运行时间为:0.001055 2013-01-25 14:36:36.038 FormulaOne[28209:12b03]文件管理器-运行时间为:0.000318 2013-01-25 14:36:36.040公式一[28209:12b03]核心数据-运行时间为:0.000740