【问题标题】:Measuring performance with parcelable使用 Parcelable 衡量性能
【发布时间】:2019-01-26 16:56:30
【问题描述】:

目前,我有大约 100 个 Pojo,它们实现了可序列化并在整个应用程序中传递,因为随着应用程序的增长,我预计会出现更多,并且使用 parcelable 会更好。

会有任何显着的性能提升吗?我该如何衡量它?

我了解 android studio profiler 等,但不知道我会在哪个方面看到性能提升,即整体应用速度、内存消耗等。

另外,在进行此更改时需要注意什么?

【问题讨论】:

标签: android performance kotlin parcelable


【解决方案1】:

根据Philippe Breault's benchmarkParcelableSerializable 快得多。他在 3 种不同的设备上对其进行了测试,Android 版本为 2.3.3 和 4.2.2。

您可以在下面看到结果。

  • Nexus 10 可序列化:1.0004 毫秒 - 可打包:0.0850 毫秒 - 快 10.16 倍。

  • Nexus 4 可序列化:1.8539ms – Parcelable:0.1824ms - 快 11.80 倍。

  • Desire Z 可序列化:5.1224 毫秒 – 可打包:0.2938 毫秒 - 快 17.36 倍。

这些数字是针对单个对象的,通过 Bundle 大约 1000 次。如果您希望增加 100 多个,事情会迅速升级。

Serializable是标准的Java接口,容易留下很多临时对象,会触发很多GC事件。

另一方面,Parcelable 是一个 Android 接口,旨在解决性能问题,它通过不使用序列化的反射来实现这一点。问题是,您必须自己定义序列化。但与 Serializable 对象相比,您将获得巨大的性能差异。

你可以阅读更多关于Parcelableon the docs的信息。

另外,related answer on why you should use Parcelable

【讨论】:

    猜你喜欢
    • 2011-08-12
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 2012-11-08
    相关资源
    最近更新 更多