Java 减少内存警告并改进内存管理器

Java 减少内存警告并改进内存管理器,java,android,memory,Java,Android,Memory,我正在做一个应用程序,从服务中获取数据,并用图表表示。应用程序运行正常,但在logcat中显示了大量GC\u FOR\u ALLOC消息 是否有任何方法可以减少此消息?有什么功能吗 这是logcat: 02-17 17:40:37.427: D/dalvikvm(30112): GC_FOR_ALLOC freed 275K, 2% free 16994K/17300K, paused 10ms, total 10ms 02-17 17:40:39.397: D/dalvikvm(30112):

我正在做一个应用程序,从服务中获取数据,并用图表表示。应用程序运行正常,但在logcat中显示了大量GC\u FOR\u ALLOC消息

是否有任何方法可以减少此消息?有什么功能吗

这是logcat:

02-17 17:40:37.427: D/dalvikvm(30112): GC_FOR_ALLOC freed 275K, 2% free 16994K/17300K, paused 10ms, total 10ms
02-17 17:40:39.397: D/dalvikvm(30112): GC_FOR_ALLOC freed 516K, 4% free 16993K/17540K, paused 8ms, total 8ms
02-17 17:40:39.987: D/dalvikvm(30112): GC_FOR_ALLOC freed 512K, 4% free 16993K/17540K, paused 10ms, total 10ms
02-17 17:40:40.287: D/dalvikvm(30112): GC_FOR_ALLOC freed 511K, 4% free 16993K/17540K, paused 9ms, total 9ms
02-17 17:40:40.577: D/dalvikvm(30112): GC_FOR_ALLOC freed 511K, 4% free 16994K/17540K, paused 8ms, total 8ms
02-17 17:40:41.117: D/dalvikvm(30112): GC_FOR_ALLOC freed 512K, 4% free 16993K/17540K, paused 8ms, total 8ms
02-17 17:40:42.687: D/dalvikvm(30112): GC_FOR_ALLOC freed 512K, 4% free 16993K/17540K, paused 9ms, total 9ms
02-17 17:40:45.887: D/dalvikvm(30112): GC_FOR_ALLOC freed 511K, 4% free 16993K/17540K, paused 9ms, total 9ms
02-17 17:40:47.187: D/dalvikvm(30112): GC_FOR_ALLOC freed 511K, 4% free 16993K/17540K, paused 9ms, total 10ms
02-17 17:40:47.457: D/dalvikvm(30112): GC_FOR_ALLOC freed 511K, 4% free 16993K/17540K, paused 8ms, total 8ms
02-17 17:40:47.737: D/dalvikvm(30112): GC_FOR_ALLOC freed 511K, 4% free 16994K/17540K, paused 10ms, total 10ms
02-17 17:40:48.817: D/dalvikvm(30112): GC_FOR_ALLOC freed 512K, 4% free 16994K/17540K, paused 8ms, total 8ms
02-17 17:40:49.097: D/dalvikvm(30112): GC_FOR_ALLOC freed 511K, 4% free 16994K/17540K, paused 8ms, total 8ms
02-17 17:40:49.417: D/dalvikvm(30112): GC_FOR_ALLOC freed 512K, 4% free 16994K/17540K, paused 15ms, total 15ms
02-17 17:40:49.687: D/dalvikvm(30112): GC_FOR_ALLOC freed 511K, 4% free 16994K/17540K, paused 10ms, total 10ms
02-17 17:40:49.967: D/dalvikvm(30112): GC_FOR_ALLOC freed 511K, 4% free 16994K/17540K, paused 9ms, total 9ms
02-17 17:40:50.237: D/dalvikvm(30112): GC_FOR_ALLOC freed 511K, 4% free 16994K/17540K, paused 9ms, total 9ms
02-17 17:40:50.507: D/dalvikvm(30112): GC_FOR_ALLOC freed 512K, 4% free 16993K/17540K, paused 8ms, total 8ms
02-17 17:40:50.777: D/dalvikvm(30112): GC_FOR_ALLOC freed 511K, 4% free 16994K/17540K, paused 8ms, total 8ms
02-17 17:40:51.257: D/dalvikvm(772): GC_FOR_ALLOC freed 972K, 44% free 31389K/55540K, paused 69ms, total 69ms

感谢GC\u FOR\u ALLOC意味着没有足够的内存来完成分配任务,因此需要通过GC分配更多的空间

当Android启动时,它以一个小堆开始,并且随着应用程序的增长和内存的消耗而增长。在增加内存之前,运行GC_FOR_ALLOC,这是标准的预期行为。这不一定是因为你的应用程序占用了太多内存


从logcat输出来看,似乎没有发生任何奇怪的事情。如果要关闭这些消息,它们具有调试日志级别。如果日志级别高于此级别,您将看不到它们。

请尝试此处提供的解决方案: