使用sqlite3 发现内存一直涨
gcc版本:arm-none-linux-gnueabi-gcc gcc version 4.2.1 (CodeSourcery Sourcery G++ Lite 2007q3-51)
程序:
#define DATABASE_NAME "tb1.db"
int main()
{
char sql[128];
nsert into tb (id, data) values( %d, %d)", no++, 2sqlite3 *db;
sqlite3_open(DATABASE_NAME, &db); //打开(或新建)一个数据库
memset(sql, '\0', 128);
strcpy(sql, "create table tb(id INTEGER PRIMARY KEY, data int(100))");
sqlite3_exec(db, sql, NULL, NULL, NULL);
int i;
int no = 0;
for(i = 0; ; i++){
sprintf(sql, "insert into tb (id, data) values( %d, %d)", no++, 2);
sqlite3_exec(db, sql, NULL, NULL, NULL);
sprintf(sql, "insert into tb (id, data) values( %d, %d)", no++, 2);
sqlite3_exec(db, sql, NULL, NULL, NULL);
sprintf(sql, "insert into tb (id, data) values( %d, %d)", no++, 2);
sqlite3_exec(db, sql, NULL, NULL, NULL);
sprintf(sql, "insert into tb (id, data) values( %d, %d)", no++, 2);
sqlite3_exec(db, sql, NULL, NULL, NULL);
sprintf(sql, "insert into tb (id, data) values( %d, %d)", no++, 2);
sqlite3_exec(db, sql, NULL, NULL, NULL);
sprintf(sql, "insert into tb (id, data) values( %d, %d)", no++, 2);
sqlite3_exec(db, sql, NULL, NULL, NULL);
sprintf(sql, "insert into tb (id, data) values( %d, %d)", no++, 2);
sqlite3_exec(db, sql, NULL, NULL, NULL);
usleep(100000);
}
}
top命令:
程序刚启动时 RSS:1112 MEM:1.8
现在是:
Mem: 37024K used, 24228K free, 0K shrd, 120K buff, 26060K cached
Load average: 0.82, 1.64, 1.90 (State: S=sleeping R=running, W=waiting)
PID USER STATUS RSS PPID %CPU %MEM COMMAND
578 root R 2312 534 63.2 3.7 arm_sqlite_test
请分析是什么问题?