<%@ page contentType="text/html; charset=gb2312"%> Java实时应用程序中的内存管理
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
Java实时应用程序中的内存管理
     发布者:Alexandre Alves 发布时间:2006-07-04
  使用Java的一个主要优点就是无需担心废弃对象,即,让Java运行时负责Java对象的内存管理。

  这是通过让Java运行时对不再使用的Java对象进行垃圾收集而实现的。

  垃圾收集是一个比较复杂的过程。通常,Java运行时会遍历堆,检查不再被其他对象引用、从而可以安全删除的对象,然而,由于垃圾收集占用CPU周期,所以它可能会影响应用程序代码的执行。即,如果在执行应用程序代码的过程中执行垃圾收集,则应用程序代码的响应时间可能延长。这会导致用户事务延迟的延长。更为糟糕的是,因为用户不知道何时会进行垃圾收集,因此延迟的延长是不可预知的。

  实时应用程序有严格的时间要求,即,它们必须在确定的、已知的延迟条件下执行应用程序代码。因此垃圾收集所引起的不可预知的延迟延长就成为一个问题。

  那么这个问题的解决方案是什么呢?一个明显的解决方案就是不要对实时应用程序使用Java。这是一个下下选。作为一种编程语言和一个开发平台,Java具有许多优点。我们应该能够解决Java中的这个问题。

  另一种解决方案是在Java中使用另一种内存管理方法来代替垃圾收集程序。RTSJ (Real-Time Specification for Java)定义了immortal memory和scoped memory的概念。不朽内存(Immortal memory)是从不进行垃圾收集的内存,只要JVM存在,它就也存在。作用域内存(Scoped memory)则是按块分配和释放的内存。即,用户显式地创建一个内存区域来存放对象,该区域中的对象将在该区域被销毁时释放。不管是不朽内存还是作用域内存,都不需要进行垃圾收集。不过,这也有一个缺点:管理内存的重担又落在了用户身上,就像C/C++应用程序一样。这个代价仍然很高。有没有更好的方法呢?

  我们来重新考虑一下垃圾收集。垃圾收集的主要问题是它所引起的不可预知的延迟峰值。能否避免这种不可预知的行为呢?或者,能否限制(即约束)这种不可预知的行为呢?通过更频繁地执行垃圾收集,我们就可以限制最大延迟时间。这就是WLRT所采用的方法。因此,垃圾收集成为一项可预知的任务,具有已知的代价,从而使实时开发人员可以根据需要进行考虑和建模。而且,更为重要的是,我们没有牺牲Java的易用性。

  注:应该注意的是,虽然有垃圾收集和其他的内存管理技术,Java程序仍然可能存在内存泄漏。例如,在下述情况下:在不需要组件对象时,却没有将其从容器中移除。
(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
第一个Servlet
在网页上发布统计曲线(统计图)
JSP与ASP的区别
jsp的中文处理解决方法
Servlet及JSP中的多线程同步问题
javaBean 在jsp和serlvle中的传递技术要点
 
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号