Alp*_*rae 53 android serializable parcelable
我一直在阅读很多文章和文章,颂扬Parcelable在Serializable上的速度.我一直在使用两种方法来通过Intents在Activities之间传递数据,并且在两者之间切换时还没有注意到任何速度差异.我必须传输的典型数据量是5到15个嵌套对象,每个对象有2到5个字段.
由于我有大约30个必须可转移的类,因此实现Parcelable需要大量的样板代码来增加维护时间.我目前的要求之一是编译的代码应该尽可能小; 我希望通过使用Serializable over Parcelable可以节省一些空间.
我应该使用Parcelable还是没有理由在Serializable上使用它来处理这么少量的数据?还是有另一个原因我不应该使用Serializable?
hac*_*bod 66
对于内存使用,Parcelable远远优于Serializable.我强烈建议不要使用Serializable.
您不能将Parcelable用于将存储在磁盘上的数据(因为它在事情发生变化时对数据一致性没有很好的保证),但是Serializable足够慢,我强烈建议不要在那里使用它.你最好自己编写数据.
此外,Serializable的一个性能问题是它结束了旋转大量临时对象,导致应用程序中的大量GC活动.这太令人发指了.:}
Cha*_*les 53
继续使用序列化.你会看到许多在线人员会告诉你序列化是非常缓慢和低效的.那是正确的.但是,作为一名计算机程序员,你永远不想做的一件事就是对性能作出绝对的评论.
问问自己序列化是否会减慢你的程序速度.你注意到它从活动到活动的时间吗?你注意到它何时保存/加载?如果没有,那很好.当你去大量的手动序列化代码时,你不会占用更小的空间,因此没有优势.那么,如果它比另一种慢100倍,如果慢100倍意味着10ms而不是0.1ms呢?你也不会看到,所以谁在乎呢?而且,为什么有人会投入大量精力为30个班级编写手动序列化,而不会在性能方面产生任何明显的差异?
afr*_*ish 16
每个人都盲目地说Parcelable比Serializable更好更快,但是没有人试图用任何证据支持他的陈述.我决定自己测试一下,结果非常有趣.
平均Android设备上的常规Java序列化(如果正确)比写入Parcelable快约3.6倍,读取快约1.6倍.
您可以在此处查看我的测试项目:https://bitbucket.org/afrishman/androidserializationtest
归档时间: |
|
查看次数: |
12745 次 |
最近记录: |