一、概述 
     经过几个月的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. 我读《通过Go来处理每分钟达百万的数据请求》

    我读<通过Go来处理每分钟达百万的数据请求> 原文 原文作者为Malwarebytes公司的首席架构师Marcio Castilho http://marcio.io/2015/07/ha ...

  2. GoF设计模式 - 概述

    掌握编程语言仅仅意味着掌握了如何给计算机"下命令",而到底要计算机如何去做,怎么指挥,则是另一个问题--如何编程.设计模式是一套程序员的"武功套路",它教我们如 ...

  3. linux 下 Fatal error: Class ‘mysqli’ not found in

    先试用这种方法 http://blog.csdn.net/u010429424/article/details/43063211 我不知道自己安装的php 没他们路径,所以用了以下这种方法处理,并且不 ...

  4. [js高手之路]使用原型对象(prototype)需要注意的地方

    我们先来一个简单的构造函数+原型对象的小程序 function CreateObj( uName, uAge ) { this.userName = uName; this.userAge = uAg ...

  5. install redis

    1.Office Download redis.tar.gz  from website --- redis.io 2.uncompact file $ tar zxvf redis-3.2.9.ta ...

  6. 网友RHCE认证考试经历

    2014年7月,为大力推广RedHat Enterprise Linux7操作系统,红帽将基RHCE认证由RHEL6转换到RHEL7上. 面对新的软件功能.新认证课程内容,初期认证学员的考试通过率一直 ...

  7. iOS 主题/皮肤之 SakuraKit

    前言 目前市场上很多 App 都有主题变更.皮肤切换的功能.随着项目代码量的不断增长,业务不断完善,功能性代码逐渐趋于模块化,尤其是在多人协作开发同一个项目时,模块解耦尤为重要,同时,公共基础库的功能 ...

  8. 转每天一个linux命令(2):cd命令

      Linux cd 命令可以说是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的. 所以,学习Linux 常用命令,首先就要学好 cd 命令的使用方法技巧. 1 ...

  9. HDU 6149 Valley Numer II 状压DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6149 题意:中文题目 解法:状压DP,dp[i][j]代表前i个低点,当前高点状态为j的方案数,然后枚 ...

  10. MongoDB副本集模式安装

    设备: 三个1G.20G.1核的虚拟机,系统是SentOS7 min 设置目录: Server1: mkdir -p /home/mongoshard/data/shard11 /home/mongo ...