Ios sqlite之后的内存泄漏(?)+;真空命令
我通过FMDB包装器在我的应用程序中使用sqlite 在调用吸尘器之前,我的应用程序中的内存使用量为2.25 MB:Ios sqlite之后的内存泄漏(?)+;真空命令,ios,sqlite,fmdb,Ios,Sqlite,Fmdb,我通过FMDB包装器在我的应用程序中使用sqlite 在调用吸尘器之前,我的应用程序中的内存使用量为2.25 MB: [myFmdb executeUpdate: @"VACUUM;" ]; 后记是5.8MB,我似乎无法回收内存。在真空后,Instruments/Allocations工具显示了大量带有活动字节的sqlite3MemMalloc调用,每个调用分配1.5k 除了关闭数据库并重新打开它(一个选项),我如何清理它 编辑:关闭并重新打开数据库连接会清除内存。这是我的解决方案,除非有人对
[myFmdb executeUpdate: @"VACUUM;" ];
后记是5.8MB,我似乎无法回收内存。在真空后,Instruments/Allocations工具显示了大量带有活动字节的sqlite3MemMalloc调用,每个调用分配1.5k
除了关闭数据库并重新打开它(一个选项),我如何清理它
编辑:关闭并重新打开数据库连接会清除内存。这是我的解决方案,除非有人对此有进一步的了解。我在sqlite用户列表上发布了这个问题,并得到了一个建议减少sqlite缓存大小的回复。这是通过执行以下语句(根据需要调整大小值)完成的: 编辑:这里有另一个释放SQLite内存的妙招。确保#定义SQLITE(启用)内存(管理) 此处记录:
pragma cache_size = 100
int bytesReleased = sqlite3_release_memory( 0x7fffffff );
NSLog( @"sqlite freed %d bytes", bytesReleased );