什么是“临时对象的分配池”?

时间:2013-07-28 16:22:23

标签: java android performance garbage-collection

我正在阅读Android培训文章:Performance Tips

  

对象创建永远不会自由。 世代垃圾收集器   临时对象的每线程分配池可以   分配更便宜,但分配内存总是更昂贵   而不是分配内存。

临时对象的每线程分配池是什么?

我没有找到任何关于此的文档。

2 个答案:

答案 0 :(得分:0)

将其读作:具有每线程分配的分代垃圾收集器,用于临时对象的池。

每个线程垃圾收集是跟踪仅与创建它们的线程关联的对象。在特定线程的垃圾收集时间,确定与该线程相关联的哪些对象仍然可以从与该线程相关联的受限根集合中到达。任何未确定可以访问的线程对象都是垃圾回收。

答案 1 :(得分:0)

他们所说的,他们是对的,是对象创造(以及随后的收集)可能是一个主要的时间接受者。

如果你看一下this example,你会发现,在某一点上,内存管理占据了主导地位,并通过将每个类的使用对象保存在一个空闲列表中来修复,因此它们可以有效地恢复使用

但是,在该示例中还要注意,内存管理不是最初的最大的问题。 在更大的问题消除后,它才成为最大的问题。

例如,假设您有一组想要减肥的人,相对于另一个团队。 假设团队有 1)一个400磅的人,(对应于其他一些问题)
2)200磅人(对应于记忆管理问题),和
3)一个100磅的人(对应于其他一些问题) 如果整个团队想要失去最大的重量,那么它应该首先集中在哪里?

显然,他们需要全力以赴,但如果他们错过这个大个子,他们就不会走得太远。

因此,最积极的程序首先要找出最大的问题(不是通过猜测),并解决这个问题。 然后是下一个最大的,依此类推。

最大的秘密是不要猜测。 每个人都知道,但他们做了什么? - 无论如何他们猜。 根据定义,猜测通常是错误的,错过了最大的问题。 让程序告诉你最大的问题是什么。 (我在该示例中使用random pausing。)