2006年02月23日 星期四
PostgreSQL执行查询等操作要注意释放内存
用PQexec执行SQL语句,一定要用PGresult指针将结果记录下来,并用PQclear 释放,否则内存泄露非常严重。
PQclear 释放于PGresult相关联的存储空间. 任何不再需要的查询结果在不需要的时候都应该用 PQclear释放掉.
void PQclear(PQresult *res);
你可以保留PGresult对象任意长的时间; 当你提交新的查询时它并不消失, 甚至你断开联接后也是这样.要删除它,你必须调用 PQclear.不这么做将导致前端的存储器泄漏.
另外,程序中lsb_geteventrec()得到的eventRec结构一直重用同一处内存,但是由于日志文件中事件结构的大小不同,程序在执行中内存可能会稍微增加一些,目前看属于正常情况。