WebGIS开发--滑铁卢(之二)
来源:互联网 发布:nginx url跳转配置 编辑:程序博客网 时间:2024/05/21 09:01
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编码规范>>中描述, 让今后来的小弟免得受苦.
去年开发伊始, 大家都特别注意泄漏问题.因为手头的试验数据只有几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编码规范>>中描述, 让今后来的小弟免得受苦.
- WebGIS开发--滑铁卢(之二)
- WebGIS开发--滑铁卢(之三)
- WebGIS开发--滑铁卢(序)
- WebGIS开发--滑铁卢(之一)
- WebGIS小结之二(基本功能概述)
- Eclipse+Mapxtreme java开发WebGIS之HelloWorld
- WebGIS开发--滑铁卢(草草谢幕啦)
- WebGIS开源解决方案之环境搭建(二)
- WebGIS小结之三(开发环境及其配置)
- Webgis开源解决方案之开发环境搭建(一)
- WebGIS开源解决方案之开发环境搭建(四)
- 招聘webgis开发工程师
- webgis系统开发
- webgis开发入门
- WebGIS 开发入门指导
- WebGIS开发技术杂谈
- WebGIS应用开发框架
- WebGIS搜索引擎之Lucene
- 单片机C51编程入门最好的例子(跑马灯)
- js 控制div 渐渐消失 渐渐出现效果
- C#对象序列化的基本使用
- 举例解析黑脸开戏,红脸收场
- 项目经理是这样当的
- WebGIS开发--滑铁卢(之二)
- 网上收集的485通讯集合。
- gdb调试时查看宏信息
- 采用设备拒绝法是上策
- 怎样通过流量分析来检测病毒
- 抢答器程序的总结
- java 正则表达式教程1
- JS之changeTDBackgroundColor()
- C51单片机,128*64串口LCD驱动