捉虫记(一)GC堆中的“内存泄漏”
上一篇 /
下一篇 2012-08-17 10:15:15
/ 个人分类:杂谈
51Testing软件测试网5Jl6?$FY Y 首先介绍一下程序,Server程序,同时有好多Client连接,Client用tcpSocket发送数据给Server,Server对
数据进行处理并返回处理结果给Client。虽然整个程序的开发时间很长,但中间不停的需求变更,功能不停地增加减少,代码也是好多人,每人几个模块甚至
是几个函数杂凑起来,系统正在被使用,功能也不断被增加,总之......是一个SHZY初级阶段特色的绝对代表的Server程序。51Testing软件测试网Bfk7lz0d
51Testing软件测试网\;z| D|HY_,E@ 这是我接手这个程序之后的一些Bug的发现和修改,把他记录下来,以做茶余饭后的谈资。51Testing软件测试网`c6e+{+y_Q
51Testing软件测试网$v#T^zU2hZ$T 对于这种要文档没文档、要规范没规范程序,要在一边添加新功能,一边发现和修改bug是极其困难的,如果没有一些大杀器,不太好搞,而一但有了一些大杀器,对于有些问题的发现以及解决又简单到令人发指,WinDbg就是这样一种大杀器。51Testing软件测试网8Ff%c
?C3GM4OQ
c3kp K(G-w
`+a-o4H0
程序一天部署好几次,没办法,bug太多了,催的又急,每次修改一下就赶紧部署了,某天突然有个经理电话里喊道,你这程序内存怎么越用越大,幸好哥早有
防备,呃,经理,先别着急,请双击一下桌面的“Server.Bat”,然后重新启动一下程序(重新启动一下内存就小了哈)。
P NFH6l4R[0,eb"}B9e1_U.z8R.Y0 1、首先对程序的运行有个大概的了解。(比如说 程序运行了多长时间,内存多大)
(L'g,i8e/}^051Testing软件测试网 j;s0jK(o^t 登到服务器上一看,我的天, dump文件1.8G---程序大概是2个小时之前部署
8M$Z,~TC[2@F0/dNHi7nsJZI1Y0 打开windbg,打开dump,呃,程序运行了2个半小时。