内存泄漏,Memory Usage,Working Set

上一篇 / 下一篇  2009-06-29 23:45:08 / 个人分类:工作经验谈

V%XFH+i%J&\0 51Testing软件测试网)YouvnX2O1S

&U5Z(dZ$ljGi~0  其实内存泄漏一直存在,只是开始阶段大家都只是关注功能,只处理一两条数据,这时候只关注功能的正确性。51Testing软件测试网wy#xx3Y H

51Testing软件测试网'W1P5v%^4|8HwKMS

内存泄漏其实已经出现,只是你没有去关注他而已。如果有一个工具能够帮助我们监视内存,报告整个工作过程的内存变51Testing软件测试网+V0y I gLF[X

+|%I!DY9d'W%~ Sfm0化,那qi不是很棒,有这样那样的工具,其实最棒的还是系统自身的性能监视器。

2iF1i1Hq0Y Y&j0

I wso(^Sj0p;dt0在run里面输入perfmon即可打开。51Testing软件测试网/d3q,|h1p

EZr!s L6m gA|0 打开之后,将系统默认的计数器按del全部删除掉,自己来建一个。我们测产品,肯定是观察特定于某个进程的是吧,针对整个系统的没什么用。添加个计数器,性能对象选择process,范例选择你要监视的进程,那内存点用率是选哪个啊。看来看去好多啊,Bytes的,咦,这个好像是,那个也好像是,到底是哪个啊,头痛!而且计数器的说明也不通啊,中文翻译的真是zao糕,让人摸不着头脑。

&omz#Jhu;sl0

+s:P;?Q5O7R0  其实是有个叫workingset的计数器,就是内存占用率,选上进程和WorkingSet计数器之后,就可以在图表中看到了。咦,怎么老是在100的位置啊,这个100到底是100M还100%啊,用进程管理看下被监控内存占用量,对不上啊。真晕。

-Io g9IZAoN5D-Eb051Testing软件测试网+mw@/wMX

今天有个高材生给我指点了下,这个是要cheng上此计数器的Scale值,就是比例尺啦。一直显示100%是因为比例尺51Testing软件测试网feb*K Z7wCl^

51Testing软件测试网4Y5ChTw{$?.I1V

选得太小的缘故,值一直就冲出了这个比例尺的最大值,选择一个大点的就不会了。再看下值和任务管理器里的一样。

1hu/l_,s5L"E-N^0

P0M \i]S Cd0真棒,找着了,就是他了。

;m|$wds051Testing软件测试网5ohw;X"Ej%sT+Y

看着出来的图表,真高兴,漂亮。终于解释通了。原来就搞不懂为什么,这部分比较费劲,而且没人知道啊。所以这个51Testing软件测试网BTJ7{B,b8d4e

\n,F1nqaR7y4g0问题一直保留到今天才弄明白。哎,惭愧!51Testing软件测试网,c*t;j,[%q ip1N^4Z

51Testing软件测试网*f Ej@e9[S*|d

那为什么要用0-100这样的刻度来表示呢,因为这个纵轴可以同时表示几个计数器51Testing软件测试网Q6y!`6Y9M2L|v

5t(o/Z;x+t9g0纵坐标啊。他们的大小又不一样,有的相差又很大,怎么办啊,所以他们设计了比

7|"vN'])o)yFu0{0

&c*P'S.|`0例尺以便使他们可以在同一刻度上显示。

1tKg u l V0a051Testing软件测试网e4[Zm(r5K| w)x^l

晕,ms,都说你设计的软件易用性最高,看来还是只有在你们ms工作过的人才知道啊51Testing软件测试网0C|1{ Yjj} Rs

:bk D6MD0晕!

*I0J hcU;g([t"]&]#x2?0

k#p;oZ%s)v-b%p7k4?OT0另外一个小问题顺便附上下,看图表中的数据只是一段时间内的最新值,并不能保留全过程的。这样测试起来意义不是51Testing软件测试网7| j]0GI@0?

VR LYR6E0很大。从网上搜了下。新建个计数器即可。不过不是在图表里面,在性能和日志警报下面计数器。51Testing软件测试网rv4T(g*E

7N1Y heq-]B8b0右键,新建日志设置,输入个有意义的名称,再按如上的方法选择计数器,在日志文件选项中,选择二进制文本文件51Testing软件测试网w'l4j2TY"{)?j:a

?P6V)f*`} Y0(逗号分割)其实这个格式就是excel的csv格式,方便=会,我们用生成的数据建图表。51Testing软件测试网3i8H$K8XzAJ

:b%?s V d2s}KHF9S0计划选择手动,启动被测程序,准备执行case,选中新建的计数器点上方的启动按钮,执行case的操作,系统将为

A7b'ej"PI:`0

8I3`%A9[|feV&y0您每隔15秒钟取一次内存值,记录在csv文件中,操作完毕,点停止即可。

'z5w0Rq+H0

7B:p'B~Z'`)Q @x0然后到systemdriver:\PerfLogs\去找便有了。然后用插入图表作一下。51Testing软件测试网Bj-? DR8`

51Testing软件测试网7NeM9H pV/klD2Q2W {

出来的结果很漂亮,也不比LR的差嘛。51Testing软件测试网%P)Hb#k8OWv2V


TAG:

lsyhzw的个人空间 引用 删除 lsyhzw   /   2012-06-12 14:27:34
在进程中选择workingset之后,在测试的图标下面有一定的数据,比如最大,最小,平均值这些,这个还需要乘上计数器的Scale值吗?
脚印 引用 删除 highsoft_xyx   /   2009-07-08 11:29:09
介绍的很详细
kakamissyou的测试小栈 引用 删除 kakamissyou   /   2009-07-01 10:30:51
Does nobody understand what I mean?

I have made great trouble in figureing out how

to measure memory usage. would you please

even say hello?
 

评分:0

我来说两句

Open Toolbar