WebGIS开发--滑铁卢(之二)

resource leak!!

去年开发伊始, 大家都特别注意泄漏问题.因为手头的试验数据只有几MB,程序员每次测试也不超过50个操作(说多了,我每次F5后, 就操作3/5下,呵呵).

今年三月, 测试小阿妹一登场, webgis一上线, 牛鬼蛇神都出来捣乱了!

上班不到一小时, 测试的小阿妹报告--地图显示变慢了;
两个小时后, MM报告--太慢了!
午饭, 睡醒后, MM急报--系统死翘翘了!

我狂奔过去, 一看任务管理器, LLD, 内存才用50MB嘛, 没啥大不了的啊, CPU也是<5%啊!
内存没吃多少, CPU也没占用, 咋个回事??啥把俺的程序给搞瘫了?!
再一看, 嘛儿这么多阿? 1K多个??  GDI对象!!!!

快去 baidu, 有大侠说, 一个proccess中, 最多9999个, 可是, 我也没到啊!

再想想, 我都用甚么GDI句柄了----PEN BRUSH FONT ICON HDC HWND......
突然发现, 用了HBITMAP, 这个东东可不是简单的GDI对象啊,需要好大一块内存耶! 而且, 这块内存,操作系统有限制, 不是无限申请!!

立刻开始人肉搜索:  找出所有使用GDI对象的地方, 主要是Symbol-->Draw(), MapLayer-->Draw()  Map-->Draw()这三个关键函数体.
发现了一些GDI对象在创建后, 遇到非正常情况函数执行中途退出了, 未能在函数尾端销毁GDI对象, 嘿嘿...
痛啊, 决定立刻把这种痛惨烈滴在<<XXXXX编码规范>>中描述, 让今后来的小弟免得受苦.
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值