相关疑难解决方法(0)

为什么调用System.gc()是不好的做法?

回答了关于如何用Java强制释放对象的问题(这个人正在清除一个1.5GB的HashMap)后System.gc(),我被告知System.gc()手动调用是不好的做法,但这些评论并不完全令人信服.此外,似乎没有人敢投票,也没有人回答我的回答.

我被告知这是不好的做法,但后来我也被告知垃圾收集器运行不再系统地停止世界,并且它也可以有效地被JVM用作提示,所以我有点像茫然

我知道JVM在需要回收内存时通常比你知道的要好.我也明白,担心几千字节的数据是愚蠢的.我也明白,甚至数兆字节的数据也不是几年前的数据.但仍然,1.5千兆字节?而且你知道内存中有1.5 GB的数据; 它不像是在黑暗中拍摄.是System.gc()系统性的坏,还是有一点它变得好吗?

所以问题实际上是双重的:

  • 打电话为什么或不是不好的做法System.gc()?它是否仅仅是某些实现中JVM的提示,还是一个完整的收集周期?真的有垃圾收集器实现可以在不停止世界的情况下完成工作吗?请详细说明人们在评论中对我的回答所做的各种断言.
  • 门槛在哪里?打电话是不是一个好主意System.gc(),或者有时候可以接受?如果是这样,那些时候是什么时候?

java garbage-collection

317
推荐指数
7
解决办法
12万
查看次数

在Android中检测应用程序堆大小

如何以编程方式检测Android应用程序可用的应用程序堆大小?

我听说有一个功能可以在SDK的更高版本中执行此操作.无论如何,我正在寻找适合1.5及以上的解决方案.

memory heap android heap-memory

143
推荐指数
5
解决办法
10万
查看次数

不同手机/设备和操作系统版本上的Android堆大小

有没有人知道Android手机上的堆大小是否是根据操作系统版本中设置的常量值,或者这是电话制作者可以决定的设置?

堆大小是否与手机上的RAM量成正比?

我只找到了人们说应用程序的堆大小为16M的文章.但是,这些文章有点陈旧.从我看来,作为一个例子,在一个特定型号上,堆大小从大约20M到24M不等.这款手机拥有768M的RAM.

heap android

71
推荐指数
6
解决办法
9万
查看次数

标签 统计

android ×2

heap ×2

garbage-collection ×1

heap-memory ×1

java ×1

memory ×1