相关疑难解决方法(0)

在Swift中使用大型Core Data批处理插入内存泄漏

我将数以万计的对象插入到我的Core Data实体中.我有一个NSManagedObjectContext,save()每次添加对象时我都会调用托管对象上下文.它可以工作,但在运行时,内存从大约27M增加到400M.即使在导入完成后它仍然保持在400M.

在此输入图像描述

关于批量插入有很多SO问题,每个人都说阅读Efficiently Importing Data,但是它在Objective-C中,我很难在Swift中找到解决这个问题的真实例子.

memory-leaks bulkinsert core-data ios swift

11
推荐指数
1
解决办法
5526
查看次数

保存和获取在核心数据中消耗高内存 800MB 和 100% CPU / 如何在 swift4 中在核心数据中进行批量插入和获取

我使用核心数据存储了 10000-20000 条记录。如果我尝试保存和获取 10000 条记录,内存和 CPU 消耗很大,因为该应用程序在 iphone 6 plus 和更早的设备中崩溃。

对于 10000 条记录,图片不断增加到 800mb

以下是保存方法:----

   //InboxCoredata Saving Method i..(calling saving method ii)
func InboxSaveInCoreDataWith(array: [[String: AnyObject]])
{
    _ = array.map{self.InboxCreateCollectionEntityFrom(dictionary: $0)}
    do
    {
        try CoreDataStack.sharedInstance.persistentContainer.viewContext.save()
        print("Inbox Data saved Sucessfully in Coredata ")
    }
    catch let error
    {
        print(error)
    }
}

// Inbox Coredata saving method ii
func InboxCreateCollectionEntityFrom(dictionary: [String: AnyObject]) -> NSManagedObject?
{
    let context = CoreDataStack.sharedInstance.persistentContainer.viewContext
    if let inboxEntity = NSEntityDescription.insertNewObject(forEntityName: "InboxData", into: context) as? InboxData {
        inboxEntity.fileType = dictionary["FileType"] as? String …
Run Code Online (Sandbox Code Playgroud)

xcode memory-leaks core-data ios swift

0
推荐指数
1
解决办法
1084
查看次数

标签 统计

core-data ×2

ios ×2

memory-leaks ×2

swift ×2

bulkinsert ×1

xcode ×1