一、概述 
     经过几个月的rap 项目实战,总结了一些小经验,在这里总结一下,希望对大家有所帮助。 

二、销毁的处理 

      相信学习rap 的同学都知道,swt 中提供了许多的组件,像label、 button、 text等,这些组件在实际中的运用是非常广泛的,当然具体的用法在这里就不介绍了,主要是在我们实际应用过程中应该注意的地方,那就是用过后要记得销毁组件。 
       从我们项目中来说,在我们的项目中应用了大量的label 组件,并且会有频繁的增加和删除的功能。此时就会有大量的无用的label产生,如果不销毁这些label ,那将会占用一些空间资源信息。起初在做项目的时候没有考虑到这个问题,频频的产生内存溢出的现象, 从界面上并没有看到什么太大的数据量,后来发现,这些罪魁祸首原来是那些隐藏起来的没有用的label 岛的鬼。最后在逻辑中这样处理的,在该label 用完的时候,调用label 的dispose() 方法就可以了。但是大家要注意,一定要确保在label 不用了之后在dispose(),否则会引起组件失效的异常。 

三、特殊情况的处理 

      组件的dispose方法是销毁当前组件所暂用的资源,但是并不是你调用了dispose方法就可以销毁当前的组件,这个还和组件内对象关联有关系.再加上rap本身单线程的实现机制,有些对象是常驻内存的这样就造成了对象不能正常销毁的情况 
举个例子:大家在使用rcp/rap的时候肯定是要实现很多 composite对象,每个composite对象里面可以还要调用其他很多composite、资源、或者其他对象的引用,这个时候如果你调用当前对象的dispose()方法并不能销毁当前对象,因为对象里面的很多资源都是存在并且没有被销毁的,特别的在类的关系很复杂的情况下,销毁对象是更不可能的事情 
处理方式:实现composite对象的时候 一定要重写 dispose(),在此方法中一定要释放所有的资源,比如数据库资源,对象引用,要保证所有的引用都置空,这样能提高虚拟机回收速度. 

四、如何校验程序的对象是否正常释放 

      大家可以使用JProfile 分析一下内存来确定某个对象是否正常释放.JProfile同样可以把每个对象和对象的引用都展示在界面上,让你对内存问题一目了然.

Eclipse rap 富客户端开发总结(12) :Rap 优化之组件的销毁的更多相关文章

  1. Eclipse rap 富客户端开发总结(15) :rap如何使用js

    1. 把输入的字符串当 javascript 执行 try { RWT.getResponse().getWriter().println("alert('123');"); }  ...

  2. Eclipse rap 富客户端开发总结(14) :rap 图片、数据缓存处理

    一.概述 在进行了 rap 的基本学习之后,您对 rap 的理解是否进入了更高的一个层次呢,个人觉得,对学习 rap 的人来说,进行 rap 的学习是一个探索的过程,在编程中不断的对其进行理解和分析, ...

  3. Eclipse rap 富客户端开发总结(4):如何搭建 rap 中文开发环境

    Rap中文开发环境搭建大约分为2个部分 1.  rap国际化,详细参加文章(rap开发经验总结(5)-rap国际化之路) 2.rap自带的JFace ,Dialog 等国际化 1.中文包下载地址: h ...

  4. Eclipse rap 富客户端开发总结(3):rcp/rap目前界面上的一些差异

    1. Label和Button按钮的显示的差异 当Label 和 Button显示的文字过长显示不开的时候,rcp.rap的处理方式就不一样了,rap显示不开会自己截取掉后面的文字,rcp会在文字的中 ...

  5. Eclipse rap 富客户端开发总结(2):rap项目目前的进度和存在的问题

    1. Eclipse rap项目目前的进度 目前rap 的最新版本是 rap 1.5M4,最稳定版本是 rap 1.4.1,我们项目目前使用的版本是rap 1.4.1,Rap目前已经支持的部分是 sw ...

  6. Eclipse rap 富客户端开发总结(1) :rap简单介绍和开发环境搭建

    一.rap简单介绍 1 基本概念     RAP可以让开发人员使用JAVA API和按照Eclipse 插件的开发模式构建基于AJAX的Web 2.0应用程序, RAP的工作原理是采用交叉编译的方式将 ...

  7. Eclipse rap 富客户端开发总结(13) :Rap/Rcp保存按钮处理方式

    一.概述 在做项目的过程中,处理编辑区的保存机制的时候.发现,同样是扩展eclipse 自带的保存和全部保存按钮时候,rcp 工程下,保存按钮可以正常的灰显和可用,但是rap 的按钮就是始终呈现灰显的 ...

  8. Eclipse rap 富客户端开发总结(10) : Rap不同系统间的差异和处理方式

    平常进行 rap 程序开发一般都是在 win 下面完成 , 然后在 tomcat 下面测试 , 但是程序最终发布一般都是在 linux  aix 上面 , 这个时候就有能会出现一下问题,下面 2 个问 ...

  9. Eclipse rap 富客户端开发总结(9) : rap上传与下载

    一 上传 上传即将文件上传到服务器上,在客户端需要写相应的脚本,服务器端需要注册相应的 handle 接受客户端的请求. 原理: Rap 的上传和下载是通过普通的 web 的方式进行上传和下载的 ,  ...

随机推荐

  1. Python 第四天

    高级特性 切片操作符 我们可以使用切片操作符获取 tuple 或者 list 中指定范围内的元素 list1 = [1,2,3,4,5,8,7,6,10] list2 = [1:3] #[2.3] l ...

  2. 前端应该知道的Web Components

    前端组件化的痛点 在前端组件化横行的今天,确实极大的提升了开发效率.不过有一个问题不得不被重视,拟引入的这些html.css.js代码有可能对你的其他代码造成影响. 虽然我们可以通过命名空间.闭包等一 ...

  3. css3文本字体

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 盼盼Degenerate——清除浮动的方法

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <meta name= ...

  5. 【Ubuntu 16】安装ssh

    ubuntu16默认使用ufw(Uncomplicated FireWall 继承自 iptables)管理防火墙,使用gufw图形化界面方便管理, 默认情况下openssh-server没有安装. ...

  6. Centos 6.5 安装 python3.6.2、pip9.0.1、ipython6.1

    说明:由于Cenots 6.5 默认是安装的 python 2.6.6  要想同一台主机使用多个python版本,不能影响原来的版本,因为系统很多还依赖于python,比如 yum    python ...

  7. hdu3416 Marriage Match IV(最短路+网络流)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3416 题意: 给出含n个点.m条有向边的图,每条边只能走一次,给出起点和终点,求起点到终点的最短路径有 ...

  8. Wifi长距离传输

    本人从事Linux驱动开发.现在要实现两端之间wifi长距离(1km左右)传输视频数据(全向天线)的功能.目前用的平台是Atheros AR9342.我在网上查到一些资料是关于禁用802.11的CSM ...

  9. MVC分页示例

    分页说明 对于大多数非枚举数据,我们都需要进行分页管理.在WEBFORM时代,有GridView,也可以配合AspNetPager很方便的实现分页,到了MVC,也同样可以使用MVCPager,作者都是 ...

  10. DOS命令运行java文件,批量引用jar包

    进入class文件目录 cd:\workspace\workspace_goodsownersystem\workspace_goodsownersystem\goodsownersystem\tar ...