我有一个与 arduino 通信的应用程序,它运行一个 netty 实例来控制 arduino。问题是我没有用完内存,但是根据 adb logcat,总堆大小与使用的堆大小相比太低了我总是在 %10 左右空闲,所以对 netty 服务器的任何请求都会触发 gc,此时我得到了一堆的,
D/dalvikvm( 2862): WAIT_FOR_CONCURRENT_GC blocked 189ms
即使是不做任何事情的简单请求(至少对我来说)也会在 gc 暂停时损失至少一秒钟。我有
android:largeHeap="true"
在我的清单中设置,模拟器设备的 VM 堆为 512 mb,但它没有分配接近该数字的任何地方(它分配了大约 10MB)。我没有内存泄漏,因为 10% 的空闲是稳定的,它会 +/- 2-3%。即使在具有 2 gigs ram 的手机上(所有其他应用程序都关闭)我总是在运行时使用少于 2 3 MB 的空闲堆是否有解决方法?