为什么-openWithCompletionHandler这么慢

时间:2013-05-13 05:29:04

标签: ios objective-c xcode core-data

我有一个CoreData数据库有3个实体:“Card”,“Record”,“Stat”,只有“Card”中有大约3000个对象,而“Card”没有blob属性(我知道blob属性可能是慢),其他2个实体没有对象。

我在我的iPhone4上调试了,当它打开数据库时,我发现它很慢,

这是我的代码:

NSLog(@"database start open...");
        [self.database openWithCompletionHandler:^(BOOL success) {
            NSLog(@"copy & open success: %d", success);
            callback(YES);
        }];

这是日志:

2013-05-13 13:11:54.776 SuiShouBei[1670:707] database start open...
2013-05-13 13:11:54.943 SuiShouBei[1670:1b03] CoreData: annotation: Connecting to sqlite database file at "/var/mobile/Applications/850D8AFD-BA6E-4E64-A150-507D5CD645FB/Documents/Default Database/StoreContent/persistentStore"
2013-05-13 13:11:54.950 SuiShouBei[1670:1b03] CoreData: sql: pragma cache_size=200
2013-05-13 13:11:54.956 SuiShouBei[1670:1b03] CoreData: sql: SELECT Z_VERSION, Z_UUID, Z_PLIST FROM Z_METADATA
2013-05-13 13:11:57.941 SuiShouBei[1670:707] copy & open success: 1

从CoreData日志中,它花了3秒钟来 SELECT Z_VERSION,Z_UUID,Z_PLIST FROM Z_METADATA ,这些字段和数据由CoreCode框架本身管理。有时甚至需要更长的时间(> 10秒)。

我真的不知道为什么花了这么长时间,以及如何让它更快?

感谢。

0 个答案:

没有答案