Java垃圾收集行为
Android设备上的垃圾收集器是否只收集孤立的对象,并且认为这些对象太大,还是收集所有孤立的对象,而不管其大小 我正在做一个测试,在这个测试中,我快速地将一个活动推上推下堆栈几次,然后查看堆 如果所讨论的活动不包含任何代码,那么即使在强制执行GC之后,它的几个实例也会显示在堆转储中Java垃圾收集行为,java,android,memory-leaks,garbage-collection,Java,Android,Memory Leaks,Garbage Collection,Android设备上的垃圾收集器是否只收集孤立的对象,并且认为这些对象太大,还是收集所有孤立的对象,而不管其大小 我正在做一个测试,在这个测试中,我快速地将一个活动推上推下堆栈几次,然后查看堆 如果所讨论的活动不包含任何代码,那么即使在强制执行GC之后,它的几个实例也会显示在堆转储中 但是,如果我向这个活动添加一个大变量,比如一个大字节数组,那么GC的行为似乎符合预期。最终它会收集所有内容,而不管大小。垃圾收集器在变得可用于收集后收集的内容是特定于实现的,不应依赖它。垃圾收集器不注意它们收集的对
但是,如果我向这个活动添加一个大变量,比如一个大字节数组,那么GC的行为似乎符合预期。最终它会收集所有内容,而不管大小。垃圾收集器在变得可用于收集后收集的内容是特定于实现的,不应依赖它。垃圾收集器不注意它们收集的对象的大小。他们不分青红皂白。如果GC检测到某个对象不可访问,它将收集该对象 你可能观察到的是一种不同的效果。典型的垃圾收集器仅在JVM确定有足够的垃圾值得收集时运行。问题是集合的工作负载有两部分:
System.GC()
的行为是高度特定于平台的。在一些平台上,它将触发一个完整的GC,在其他平台上,它将完全不做任何事情。。。以及介于两者之间的各个点