Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.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/8/.htaccess/5.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
Ios sqlite之后的内存泄漏(?)+;真空命令_Ios_Sqlite_Fmdb - Fatal编程技术网

Ios sqlite之后的内存泄漏(?)+;真空命令

Ios sqlite之后的内存泄漏(?)+;真空命令,ios,sqlite,fmdb,Ios,Sqlite,Fmdb,我通过FMDB包装器在我的应用程序中使用sqlite 在调用吸尘器之前,我的应用程序中的内存使用量为2.25 MB: [myFmdb executeUpdate: @"VACUUM;" ]; 后记是5.8MB,我似乎无法回收内存。在真空后,Instruments/Allocations工具显示了大量带有活动字节的sqlite3MemMalloc调用,每个调用分配1.5k 除了关闭数据库并重新打开它(一个选项),我如何清理它 编辑:关闭并重新打开数据库连接会清除内存。这是我的解决方案,除非有人对

我通过FMDB包装器在我的应用程序中使用sqlite

在调用吸尘器之前,我的应用程序中的内存使用量为2.25 MB:

[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 );