繁体   English   中英

如何为 Kotlin Multiplatform 移动项目有效地保持 RAM 中的连续内存

[英]How to keep efficiently continuous memory in RAM for Kotlin Multiplatform mobile project

移动应用程序接收一系列 4 字节长的数据包。 在一个会话中可能会收到大约 1M 的这些数据包。 一旦收到所有数据包,应用程序就可以分析它们,因此需要以某种方式存储它们。 我想知道在 Kotlin Multiplatform Mobile 项目的内存大小效率方面的最佳方法是什么。

我考虑过:

  • Android 和 iOS 的通用实现和使用:

    • ByteArray
    • List<Long> - 在最大的原语 - Long (8B) 中保留 2 个数据包,以减少列表中的内部项目数量,从而减少每个对象消耗的内存开销。
  • 制作一个抽象集合并为每个平台实现它。 作为内部存储器模型使用:

    • Android: ByteBufferByteArrayList<Long>
    • iOS (Swift): ByteArrayData

最小的内存使用最重要的因素

就内存消耗而言,最好的方法是什么?

肯定不是 Int 列表。 ByteArray 没问题,或者 IntArray 如果这样更容易管理数据(作为整数)。

如果您知道 1M 是最大值,那么您将更容易初始化单个数组并重用它。 如果没有,您可以找出一个更灵活的结构,但它将是在下面使用数据数组构建的东西(我猜)。

您可能可以使用特定于平台的结构做一些更有效的事情,但我会从 ByteArray/IntArray 开始并从那里开始工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM