帮帮文库

返回

计算机专业外文翻译__Java垃圾收集器的工作方式(共9页) 计算机专业外文翻译__Java垃圾收集器的工作方式(共9页)

格式:word 上传:2022-06-25 06:51:56

《计算机专业外文翻译__Java垃圾收集器的工作方式(共9页)》修改意见稿

1、“.....,,,,,,,,,,,,本科生毕业设计论文第页,,,,,,,,,,,本科生毕业设计论文第页,本科生毕业设计论文第页垃圾收集器的工作方式如果你学下过种因为在堆里分配对象所以开销过大的编程语言,很自然你可能会假定在堆里为每样东西除了分配内存资源的机制开销也会很大。不过,事实上垃圾收集器能够深刻影响对象的加速创建。开始听起来有些奇怪存贮空间的释放会影响存贮空间的分配,但是这的确是些的工作方式,并且这意味着为堆对象分配存贮空间几乎和别的语言里为栈分配存贮空间样地快。举个例子,你可以认为的堆就如同个堆放的工场,在这个工场里,每个对象都立有的地皮占有权不久会被废除无效,并且这块地皮必须重新加以利用。在的里......”

2、“.....它就更像是个不断向前移动的传送带。这就意味着对象存贮空间的分配速度明显加快。在这个过程中,堆指针简单地向还没被占用的空间领域移动,所以非常像里栈的分配方式。当然,记录工作会有点额外的开销,但是完全不同于里那种在堆放工场里为寻找没被利用的存贮空间而付出的开销。你或许观察到实际上堆本身并不是个传送带,如果你真的那样看待堆,你就会启用虚拟内存在硬盘里不断地装卸,结果是看上去你会拥有比实际情况还要多的内存空间。最终,当你创建了足够多的对象后,你会耗尽内存。的诀窍就在于垃圾搜集器插手于其中,当垃圾收集器收集垃圾的时候......”

3、“.....垃圾收集器重新安排了整个过程,这使得分配存贮空间的时候种高速,无穷闲置的堆模式成为可能。要想理解的垃圾收集工作,先了解下别的语言系统里垃圾收集所使用的方案是有帮助的。种简单的但却较慢的垃圾收集技术就是引用记数。这种技术意味着每个对象都含有个引用计数器,每次个引用指向那个对象的时候,引用记数就增加每次对象引用离开作用域或者被设置为的时候,引用记数就减。因此,应付对象被引用的数量在你的程序的整个生命周期里是笔较小但却直持续的开销。垃圾收集器历遍整组对象,当它发现个引用记数为零的对象时就会释放那个对象的存贮空间。不本科生毕业设计论文第页过,只要记数为零,引用记数方案通常会立刻释放对象......”

4、“.....那么这些对象的引用记数可能为非零,而垃圾收集器依然把它们当作垃圾收集。定位这种自我引用的对象组需要垃圾收集器付出大量额外的工作。引用记数通常被用来解释类垃圾收集的工作原理,但是它似乎没被任何种所采纳。有种执行更快的垃圾收集方案,这种方案中垃圾收集不是建立在引用记数的基础上。相反,它的思想是任何没死的对象最终定会在栈和静态存贮器里找到相应存活的引用。这种链式的查找方式可能历遍几个层次的对象组。因此,如果从栈和静态存贮器里开始并历遍整个引用组,你会找到所有存活的对象。对于你找到的每个单引用,你必须找到它所指向的对象,然后发觉那个对象的所有引用,接着找到那些引用所指向的所有对象,依次类推......”

5、“.....每个你找到的对象必须还存活着。注意,这里不存在分离的自我引用的对象组他们只是没被查找到,因此被自动当作垃圾。在上述提到的垃圾收集方案中,使用了种自适应的垃圾收集方案,它对查找到的存活对象采取的措施依赖于它正在使用的方案变体。其中的个变体就是。它意味着基于些明显的原因程序首先停止运行这不是种在后台实施的垃圾收集方案。然后,每个活着的对象从个堆里被拷贝到另个堆里,同时被拷贝的活对象和死的对象被当作垃圾遗弃。并且,当对象被拷贝到新的堆里后,他们在那里被个挨个塞紧,因此实现了压缩新堆的目的而且如前所述,这种方式腾出了压缩后多余出来的新的空间。当然,对象从个地方移动到另个地方的时候......”

6、“.....指向堆或者静态存贮器里个被移动对象的引用可以立即得到改变,但是还存在其它后来在走走的时候才会碰到的指向该对象的引用。这些引用旦发现就会被修改。你可以想象存在张映射旧新地址的表。有两个问题使这种所谓的拷贝型收集器缺乏效率。第个问题就是你使用了两个堆,为了维护两倍于你实际所需要的内存空间,你得在这两个堆之间来回搅动着整个内存空间。些通过依据实际所需来为堆分配大块内存,然后很简单地从个块拷贝对象到另个。第二个问题是拷贝过程本身。旦你地程序趋向于稳定的时候,它可能生成很少或者几乎不生成垃圾。然而本科生毕业设计论文第页方案不管这些,拷贝型垃圾收集器依旧把活对象占用的空间从个地方拷贝到另个地方,这就形成了浪费......”

7、“.....些会探测没有新垃圾产生的时机,并且会转向实施另外个完全不同的垃圾收集方案。这种不同的方案被称为,并且它是的早期版本直使用的方案。处理般的垃圾收集工作,表现得相当地慢,但是当你的程序生成很少或者不生成垃圾时,它又运行得很快。遵循着和样的逻辑从栈和静态存贮器里出发,跟踪所有的引用从而找到存活的对象。不过,每次它找到活对象的时候,那个对象被做以标记,而且对象还不会被收集起来。只有在整个标记过程完成后,清扫工作才真正开始。在清扫过程中,死对象被释放存贮空间。不过,方案的实施过程并没有拷贝压缩的步骤发生,所以如果垃圾收集器打算压缩已经成为碎片的堆,它会采用如同洗牌样的方式来重新安排对象的散乱分布......”

8、“.....相反,程序需要停止运行的同时垃圾收集开始工作。在的文献资料里,你会发现很多资料认为垃圾收集是种低优先性的后台进程,但事实上垃圾收集在早期的版本里并不是这样执行地。相反,当内存闲置空间少的时候,的垃圾收集器会终止程序运行。也需要程序被终止。正如前面提到的,在这里描述的里,内存被分配成大的块。如果你指定了个大的对象,它将会得到它自己的内存块。严格意义上的在可以释放旧堆之前,需要从源堆里拷贝每个活着的对象到新的堆里,这会耗费大量内存。而有了块的概念,垃圾收集器在收集的时候就能够拷贝对象到死的块里。每个块都有个生成数用来跟踪它是否还活着。正常情况下,只有自上次垃圾收集后创建的块才被压缩所有别的块,如果在什么地方被引用的话......”

9、“.....这种方式解决了通常情况下许多短期生存的暂时对象。彻底的清扫工作会周期性进行。大的对象仍旧不拷贝他们只是把自己的生成记数增加,而那些包含小对象的块会被拷贝和压缩。会监视垃圾收集的效率,如果是因为所有的对象都稳定运行而使得收集工作比较浪费时间的话,垃圾收集会转向模式。同样地,也会跟踪的运行效果,如果堆开始变得零碎本科生毕业设计论文第页不堪,垃收集又会转回模式。这就是自适应概念的来源,所以你能总结出句冗长拗口的话自适应地分阶段地。里,可能会有些附带的加速技术。项很重要的技术就涉及到那个加载程序的操作,它被称为编译器。编译器能部分或者全部把程序转换成机器能够识别的代码,所以程序就不需要的解释了......”

下一篇
温馨提示:手指轻点页面,可唤醒全屏阅读模式,左右滑动可以翻页。
计算机专业外文翻译--Java垃圾收集器的工作方式.doc预览图(1)
1 页 / 共 9
计算机专业外文翻译--Java垃圾收集器的工作方式.doc预览图(2)
2 页 / 共 9
计算机专业外文翻译--Java垃圾收集器的工作方式.doc预览图(3)
3 页 / 共 9
计算机专业外文翻译--Java垃圾收集器的工作方式.doc预览图(4)
4 页 / 共 9
计算机专业外文翻译--Java垃圾收集器的工作方式.doc预览图(5)
5 页 / 共 9
计算机专业外文翻译--Java垃圾收集器的工作方式.doc预览图(6)
6 页 / 共 9
计算机专业外文翻译--Java垃圾收集器的工作方式.doc预览图(7)
7 页 / 共 9
计算机专业外文翻译--Java垃圾收集器的工作方式.doc预览图(8)
8 页 / 共 9
计算机专业外文翻译--Java垃圾收集器的工作方式.doc预览图(9)
9 页 / 共 9
预览结束,喜欢就下载吧!
  • 内容预览结束,喜欢就下载吧!
温馨提示 电脑下载 投诉举报

1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。

2、下载的内容跟在线预览是一致的,下载后除PDF外均可任意编辑、修改。

3、所有文档均不包含其他附件,文中所提的附件、附录,在线看不到的下载也不会有。

  • Hi,我是你的文档小助手!
    你可以按格式查找相似内容哟
DOC PPT RAR 精品 全部
小贴士:
  • 🔯 当前文档为word文档,建议你点击DOC查看当前文档的相似文档。
  • ⭐ 查询的内容是以当前文档的标题进行精准匹配找到的结果,如果你对结果不满意,可以在顶部的搜索输入框输入关健词进行。
帮帮文库
换一批

搜索

客服

足迹

下载文档