网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.JAVA程序员必读:基础篇(2.c)语言.
.调整JavaTM 的I/O性能(三)(zt).
.Java语言深入 JAVA之精髓IO流.
.Apache目录服务器中存储Java对象.
.Java、XML与数据库编程实践 (四).
.Why Java can be used for games?.
.Sun提高Java与.Net兼容型性.
.用JavaMail显示复合邮件的内容.
.浅谈Java加壳的问题.
.《java与模式》----创建模式系列.
.Sun 发布 JAXP 1.
.JDBC Error establishing socket.
.通过Java如何实现AES密码算法.
.Cook JDBC with SpringFramework.
.struts开发实践—分页的实现.
.JBuliderX中光标错位及中文问题办.
.使用Java程序的泛型应该注意的几.
.Struts+Hibernate代码生成器设计.
.dom规范和在java中的实现 sunmin.
.RootFolder 属性.

简单介绍Java实时应用程序中的内存管理

发表日期:2008-1-5


垃圾收集是一个比较复杂的过程。通常,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中的修饰词使用方法总结 人气:637
下一篇:探讨Java与Ruby语言迁移时风险预测 人气:698
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐