gpt4 book ai didi

java - 垃圾收集与交换、分页之间的关系

转载 作者:行者123 更新时间:2023-11-30 04:01:47 24 4
gpt4 key购买 nike

我是 Java 新手。我了解垃圾收集和分页、交换各自的作用。我想了解它们之间的关系。 GC是否会导致分页或交换?我知道GC的首要工作就是回收内存。但如果需要的话,它会通过分页或交换来回收吗?还是与GC无关并由操作系统完成?

最佳答案

要理解这种关系,请注意 Java 执行 generational garbage collection 。堆上分配了年轻代和老一代的对象。从 JVM 的角度来看,它不会关心交换,而是使用它配置的堆大小。但是,堆大小当然会决定管理 JVM 进程的操作系统的交换行为。

在年轻代的收集中,只收集比较新的对象。由于最近的分配,这些对象不应被操作系统换出。当然,如果您为年轻代选择了大于 RAM 的大小,则即使是收集年轻代也需要交换,这会减慢垃圾收集器的速度。

在tenured Generation中,垃圾回收的性能首先取决于回收策略。考虑一个执行完整垃圾收集的朴素算法。该算法必须检查整个应用程序的对象图,哪些内容需要访问整个 JVM 堆。显然,整个堆应该适合 RAM。否则,垃圾收集将需要大量交换,这将导致性能不佳。实际上,收集器不会检查整个对象图。但是,选择适合 RAM 的堆大小仍然是一个很好的做法,以避免在配置 Java 应用程序的生产服务器时进行过多的交换。

关于java - 垃圾收集与交换、分页之间的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21810059/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com