Memory leaks 将数据插入sqlite数据库时内存泄漏?
我在BuildRootLinux上有一个简单的sqlite函数和SQLiteCpp,如下所示,它在数据库中插入一行,并将每秒调用一次,因此我保持数据库打开。我发现内存使用率一直在增加,是因为我保持数据库打开吗?我应该每秒钟关一次吗--谢谢Memory leaks 将数据插入sqlite数据库时内存泄漏?,memory-leaks,sqlite,Memory Leaks,Sqlite,我在BuildRootLinux上有一个简单的sqlite函数和SQLiteCpp,如下所示,它在数据库中插入一行,并将每秒调用一次,因此我保持数据库打开。我发现内存使用率一直在增加,是因为我保持数据库打开吗?我应该每秒钟关一次吗--谢谢 boolsdb::InsertData(常量数据*Data) { std::vector tags=data->GetTags(); 试一试{ 语句查询(mDb),“插入测试(序列号,生成,消耗)值('01',0,0);”; exec(); }catch(s
boolsdb::InsertData(常量数据*Data)
{
std::vector tags=data->GetTags();
试一试{
语句查询(mDb),“插入测试(序列号,生成,消耗)值('01',0,0);”;
exec();
}catch(std::exception&e){std::只有当分配的内存无法再访问时,才会发生泄漏。您认为为什么会出现这种情况?(插入时,数据库和缓存将增长。)“是因为我保持数据库打开吗?”--如您所建议的,您可以通过关闭连接来查看是否有帮助,从而进行简单的检查。。
bool Sdb::InsertData(const Data* data)
{
std::vector<std::string> tags = data->GetTags();
try {
SQLite::Statement query(mDb, "INSERT INTO test (serial_no, generation, consumption) VALUES ('01', 0, 0);");
query.exec();
} catch (std::exception& e) {std::cout << "exception happened: " << std::endl;
return false;
}
std::cout << serial_no << " " << timestamp << " "
<< generation << " " << sqlite3_memory_used() << std::endl;
return true;