ln *_*n e 1 java performance android object
来自Android的性能提示:
对象创建永远不会自由....当您在应用程序中分配更多对象时,您将强制定期进行垃圾收集,从而在用户体验中产生很少的"打嗝".
我的应用程序会定期收集GPS数据以及一些元数据.对于每个位置请求,它应该将结果添加到数据对象:
"data": {
"timestamp": {
"lat": "value",
"lng": "value"
"meta": "value"
}
"timestamp": {
"lat": "value",
"lng": "value"
"meta": "value"
}
...
}
Run Code Online (Sandbox Code Playgroud)
然后在对象达到一定大小后,或者当设备具有更好的连接性时,应用程序会将完整数据对象流式传输到我的服务器,清除它并重新使用空对象.
虽然重新使用外部data对象会产生更好的性能,并且肯定不是很难完成,但似乎不可能重新使用内部timestamp对象.我可以重新使用在下一轮GPS数据收集中有用的内部对象,并让任何剩余的内部对象被垃圾收集吗?
我可以重新使用在下一轮GPS数据收集中有用的内部对象,并让任何剩余的内部对象被垃圾收集吗?
是的,可能.但是你有没有迹象表明这样做真的是个好主意?你多久收集一次这些数据?你之前提到"定期" - 这听起来并不像你获得了大量的营业额.
像这样的微优化在平滑性能至关重要的应用中肯定很重要 - 例如手机游戏 - 但在许多其他应用中它只是不必要的,并且会损害代码的可读性和可维护性.
我建议您在做出任何决定之前衡量应用的性能.垃圾收集真的在伤害你吗?这种类型是这些问题的根源吗?(如果它只是GC问题的一小部分,那么回收这种特殊类型没有多大意义.)