• 测试技术
  • 博客
  • 视频
  • 开源
  • 论坛
  • 沙龙
  • 下载
  • 杂志
  • 招聘

字号: | 推荐给好友 上一篇 | 下一篇

富客户机应用程序的性能,第 2 部分: 堵住内存泄漏

发布: 2008-6-26 18:03 | 作者: 不详 | 来源: 领测软件测试网编辑整理 | 查看: 26次 | 进入领测软件测试网论坛讨论

领测软件测试网

%`%V3h'X$^{

| CEa&NEc3n尽管 Task Manager 能告诉您何时 发生了泄漏,但它不能帮您发现哪里 发生着泄漏。要做到这点,最好的办法是使用 Sleak,一个 SWT 开发工具(请参阅 参考资料)。您可以启用 SWT 所拥有的调试标记,使它跟踪 GDI 资源的创建位置。 Sleak 让您看到 GDI 资源以及它们是从哪里分配的。软件测试技术门户8~!_Kxvs

软件测试技术门户${ zL*n@l/V.m H

SWT 和 JFace 提供了几个不同的类,帮助您在几个缓存中管理 GDI 资源。缓存往往比您想的更灵巧。如何以及何时使用缓存并不总是显而易见的。设计时应该注意的几个问题是:软件测试技术门户P(rli$T7I1Bj/F

$f%\,Twc Im!@GDI 泄漏总是不可接受的,必须进行处理。 软件测试技术门户QyO&J;mbb8p%}
处理完泄漏后,您应该考虑下面两个问题: 软件测试技术门户eqc^.c BO
应用程序需要的总共的 GDI 资源数目。 软件测试技术门户rX.Ne+c
创建这些资源导致的开销。 软件测试技术门户`-u+aPrQ DD
总共的 GDI 资源数目

o |4vW8[1[ w0Nh 软件测试技术门户 X{!G+DE \

您需要清醒地了解应用程序所需要的总共的 GDI 资源数目,以及有多少资源是副本。副本相当重要,因为您只要有可能就应该共享 GDI 资源以便降低应用程序使用的资源数目。很容易创建副本,而且您可以都没有意识到(我曾修改了 Sleak 工具使之发现副本,并将此改变以及其他有用的改变添加到 Eclipse 中。)

d9q7dg OG$y;Q

!UBt DV|创建 GDI 资源所需的开销

V%z+`+A?t A'z.@&u

B c8Zdhx2`m? L T一般而言,创建字体和图像耗费的资源比创建颜色多。根据应用程序的不同,图像的创建可能成为某些用户动作的重大开销。如果遇到这种情况,您可以考虑使用一些 SWT/JFace 所提供的缓存。软件测试技术门户+uW$n*` CVK