我用WINDOWS自带的管理器查看刚才15.732k现在15.880k一天大概1000K吧我的程序是用到CSOCKET,数据库方面用ADO
没发现怎么内存泄露啊,奇怪了。
没发现怎么内存泄露啊,奇怪了。
解决方案 »
- 一个简单的 Cfile 读取文本文件, 却是乱码, 向大家请教
- 关于MFC
- 使用shockwaveflash插件 在别人电脑上无法使用
- 直线,弧线反走样怎么做?
- 有人说COM 过时了,在Dot Net下没有COM 了,是真的???
- vc++ 2002 MFC中的CDaoRecordset, CDaoDatabase 可以打开由acess2000建立的MDB文件吗?
- 如何限制编辑框中的准许字符
- 高分求peter norton《MFC开发Window95/NT应用程序》的配书源代码。
- 急!MSDN问题!
- VS2010使用mscomm控件无法接收数据
- 多线程中调用函数有时会中途退出了
- 系统是如何区分已分配内存,和未分配内存的?
我这两天也碰到个怪的vista下面不涨2008下面涨
现在哪台机器每个几个G的内存~~~
一天一M~~~~一年才300多M~~~毛毛雨~~~
你的程序能稳定运行1年~~~吃掉300M内存太值了~~~呵呵
_ConnectionPtr m_pConnection; m_pConnection.CreateInstance(__uuidof(Connection));
// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
// 因为它有时会经常出现一些想不到的错误。jingzhou xu
try
{
// 打开本地Access库Demo.mdb
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=CXY_CZ.mdb","","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败,确认数据库CXY_CZ.mdb是否在当前路径下!");
return -1;
} try{
_CommandPtr m_pCommand;
m_pCommand.CreateInstance("ADODB.Command");
m_pCommand->ActiveConnection = m_pConnection;///非常关键的一句,将建立的连接赋值给它
m_pCommand->CommandText = (_bstr_t)strinsert; _variant_t vNULL;
vNULL.vt = VT_ERROR;
vNULL.scode = DISP_E_PARAMNOTFOUND;///定义为无参数// m_pCommand->Execute(&vNULL,&vNULL,adCmdText);///执行命令,取得记录集
// if(m_pConnection->State){
m_pConnection->Close();
// }
m_pConnection.Release();
m_pConnection= NULL;
m_pCommand=NULL;
}
catch(...)
{
//已经重复输出错误
CString strerror;
ErrorClass errorclass;
strerror.Format("数据库执行Execute异常,当前SQL语句为--%s",strinsert);
errorclass.PrintErrorToINI(strerror);
strinsert.ReleaseBuffer(strinsert.GetLength());
// return ;
} strinsert.ReleaseBuffer(strinsert.GetLength()); return 1;整个函数体哪里有问题了
同样,不增加也不代表正常
这个只能凭经验了
举个例子
如果你的客户在持续增加
那么链接也在持续增加
如果你的链接都是即时new的结构或者类
而不是线程池
那持续增加内存就很正常了
为什么说不增加也不代表正常呢
如果你的客户在持续减少
但是内存没变
那说明问题了
1天1M 现在的服务器动辄8G 16G的内存 你这个可以忽略
有的时候在非常隐秘的地方,很难发现。
不一定new del才会造成泄漏,比如用了什么现成的类,在你不知道的时候申请了内存,而你又没有调用相应的函数去释放。
不过你的问题感觉不太严重。
我记得有人写了几个类和lib加到你工程中间能够检测你那里内存泄露了,具体不大记得了。
楼主去搜索一下vld.lib vldapi.h, vld.h, vldmt.lib, vldmtdll.lib等文件,应该可以找到相关的类和使用方法的,祝好运。。