【问题标题】:Store large amounts of images efficiently in Unity Android/iOS在 Unity Android/iOS 中高效存储大量图像
【发布时间】:2019-09-08 03:03:36
【问题描述】:

我正在考虑如何解决以下问题的架构决策:

使用 Unity 开发的移动应用程序定期服务器接收图像。 为了加快重新加载图像的重新加载时间,我希望在客户端持久缓存尽可能多的这些图像。 这些图像不需要保护,并且可以由应用程序之外的用户查看。 我目前通过将下载的图像存储在 SD 卡上来做到这一点。 使用这种方法,我有以下顾虑:

  • 大量小文件可能会降低手机和/或应用程序的速度;据我了解,许多小文件比一个大文件更糟糕(?)
  • 删除陈旧的图像以保留可用的磁盘内存似乎相当困难

我想到的一件事是使用 SQLite 来存储图像,但是,我了解到,不建议在数据库中存储大量 blob。 我可以存储图像的文件路径,这样我的第二个问题就会得到解决,但是第一个问题仍然存在。

无法将图片预打包到 assets 文件夹中,它们在运行时总是从服务器接收

我的担忧是否正确?面对这个问题时,最佳做法是什么?

您好,非常感谢,

码海

【问题讨论】:

    标签: android ios unity3d architecture storage


    【解决方案1】:

    我不确定许多文件对内存健康的影响,但我想到了一些建议:

    • 您可以在将图像写入磁盘时 gzip 并在使用前对其进行枪压缩以减少空间

    • 为了管理旧图像的删除,也许您可​​以创建一个“垃圾收集”任务,该任务在一定时间间隔运行以修剪最旧的照片,以便低于最大内存占用或强制执行最大年龄图片

    • 使用 HTTP 缓存和 CDN(如 CloudFront)有助于在通过网络请求图像时最大限度地缩短响应时间

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-23
      • 2021-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多