当前位置: 技术问答>linux和unix
关于使用c程序对mysql数据操作造成内存不断减少的问题
来源: 互联网 发布时间:2015-05-31
本文导语: 小弟再linux下使用c语言,对mysql进行操作,发现如果短时间向数据库写入大量的数据时,内存会不断的减少(vmstat查看的free),不知道是怎么回事?会不会是由内存泄漏啊? 如果把添加纪录的速度减慢,这种现象就...
小弟再linux下使用c语言,对mysql进行操作,发现如果短时间向数据库写入大量的数据时,内存会不断的减少(vmstat查看的free),不知道是怎么回事?会不会是由内存泄漏啊?
如果把添加纪录的速度减慢,这种现象就消失了
各位高手帮帮忙啊!这是怎么回事啊?
具体的程序如下:
main()
{
int i = 0;
char sql[512];
MYSQL *ev_conn = NULL;
ev_conn = my_connect(def_host_name,def_user_name, def_password,
def_eventdb_name,def_port_num,def_socket_name,0);
while(1){
i++;
snprintf(sql,sizeof(sql),"INSERT INTO %s "
"(type,repeat) VALUES (%d,%d) ",
__TABLE_NAME__,0,i);
mysql_query(ev_conn,sql);
}
}
如果每次mysql_query()后停顿1s,就没有内存减少的现象
没有关闭数据库!但程序一直运行应该不是问题。
谢了,先
如果把添加纪录的速度减慢,这种现象就消失了
各位高手帮帮忙啊!这是怎么回事啊?
具体的程序如下:
main()
{
int i = 0;
char sql[512];
MYSQL *ev_conn = NULL;
ev_conn = my_connect(def_host_name,def_user_name, def_password,
def_eventdb_name,def_port_num,def_socket_name,0);
while(1){
i++;
snprintf(sql,sizeof(sql),"INSERT INTO %s "
"(type,repeat) VALUES (%d,%d) ",
__TABLE_NAME__,0,i);
mysql_query(ev_conn,sql);
}
}
如果每次mysql_query()后停顿1s,就没有内存减少的现象
没有关闭数据库!但程序一直运行应该不是问题。
谢了,先
|
这个还不理解啊,一个水池,一边进水,一边放水。进的速度大于放的速度,水位不是要一直升高啊。
至于释不释放内存这就和具体实现相关了。某些系统为了性能,分配的内存永远不释放,自己管理起来,以后需要用的时候自己分配,只要还够就不再向系统要了。比如java。
至于释不释放内存这就和具体实现相关了。某些系统为了性能,分配的内存永远不释放,自己管理起来,以后需要用的时候自己分配,只要还够就不再向系统要了。比如java。