Java的垃圾收集功能影响了实时性,怎么办?(100分)

invaders 2001-01-31 07:43:00
现在,Java在嵌入式实时系统中用的还不多,因为不能满足:
当一个优先级较高的实时任务处于ready状态时,它能中断当前任务,
而被立刻执行. 最主要的原因是:

/*----------------------------------------*/
Java实时慢在哪

影响Java在特定时间段内迅速完成某一操作的主要原因是,Java的垃圾收集功能。在任
何应用的运行期间,都需对那些不再使用的内存,进行自动的标识和回收,但Java未向
程序设计人员提供一个直接分配和释放内存的机制,所以Java必须自行配备一个垃圾收
集功能。然而,垃圾收集既是这一语言吸引人的一个特性,也是引起诸多麻烦的一个特
性。事实上,让用户来管理内存会在程序中引发大量的错误,由Java来执行垃圾收集工
作,将可使程序设计人员编制出性能更加可靠性的程序代码。
当内存的使用达到系统所规定的上限时,垃圾收集程序便会被调用,并将会以非常高的
优先级运行在内存中,直至收集工作完成为止。然而,凡当垃圾收集程序被调用时,执
行过程对实时响应的要求便无法予以实现。

/*----------------------------------------*/

听说:
Sun公司成立了一个Real-Time Experts(实时专家)部门。
目前这一部门也正致力于“Java平台实时扩展”规范的制定。
有知道详细情况的吗?
...全文
113 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
invaders 2001-02-01
  • 打赏
  • 举报
回复
好像并没有解决根本问题呀,
关键是怎么让垃圾收集过程变得可以被打断!
kz 2001-01-31
  • 打赏
  • 举报
回复
不知道在程序内直接调用System.gc是否会显示提高线程的优先级或者在执行过程中允不允许中断,如果不提高优先级或允许中断,那可以在程序中频繁调用System.gc实现上述目的
青润 2001-01-31
  • 打赏
  • 举报
回复
我也很关注这个问题。希望能找到办法。
rypan 2001-01-31
  • 打赏
  • 举报
回复
使用 -Xnoclassgc 禁止GC,使用Reference和System.gc手动控制,不知可不可以?

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧