程序句柄泄漏

       最近行情服务器很不稳定, 几天就当掉。 而且还把整台服务器都给搞死了, 原因查了很久, 都没找出问题所在, 一般认为是把内存给吃完了,导致系统奔溃。 可是同事每天都在跟踪, 没见内存被吃多少。 今天终于在老大的指点下, 用process explorer查看到了EI(行情服务器管理控制器)的句柄数竟然达到了10多万个, 后来调试跟踪发现,确实有的地方没有closehandle。 对于以后写的程序, 特别是长时间运行的, 要利用类似process explorer 来查看资源是否有泄漏, 不但包括内存, 还有句柄等其他各种资源。 如果无法定位句柄泄漏的地方,可以尝试利用windbg来调试。

       对于内存泄漏这块, 参考林博士的高质量C++编程指南里关于内存的管理的规则:

l  【规则7-2-1mallocnew申请内存之后,应该立即检查指针值是否为NULL。防止使用指针值为NULL的内存。

l  【规则7-2-2不要忘记为数组和动态内存赋初值。防止将未被初始化的内存作为右值使用。

l  【规则7-2-3避免数组或指针的下标越界,特别要当心发生“多1”或者“少1”操作。

l  【规则7-2-4动态内存的申请与释放必须配对,防止内存泄漏。

l  【规则7-2-5freedelete释放了内存之后,立即将指针设置为NULL,防止产生“野指针”。

顺便检查一下, 如果基类被多次继承, 子类中的析构函数否要添加virtual。防止调用子类的析构函数时, 没有调相应基类的析构函数。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值