gpt4 book ai didi

android - 手机文件读取性能 : internal storage vs. SD卡对比PC硬盘

转载 作者:可可西里 更新时间:2023-11-01 19:07:47 28 4
gpt4 key购买 nike

我的 Android 应用程序将使用大文件和非常大的文件(即大小在 10MB 到 2GB 之间)。

我一直想知道智能手机使用什么硬件来稳定存储,以及这里的软件(文件读取/查找)注意事项是否与 PC 硬盘相似。我试图找到有关硬件的信息并有一些关于它的图片(内部存储、SD 卡),但我检查的来源都不够全面和/或具体。我的(相互关联的)问题是:

  1. 在“现代”智能手机(例如,Android 2.2 手机)上读取大文件时,与在 PC 上使用 Java 应用程序读取大文件相比,我必须考虑的主要区别是什么? (在磁盘寻道/读取性能方面;显然,手机内存比PC小,所以在缓冲区等情况下必须考虑到这一点)
  2. 与 PC 硬盘相比,智能手机中使用的稳定存储硬件之间的(相关)主要区别是什么? (我知道这是一个非常广泛的问题,所以我什至感谢这里的一个非常简短的回答,可能还有一些可靠的外部 URL)
  3. InputStream 读取和查找 (skipBytes) 方面,使用内部存储和 SD 卡之间是否有区别(例如在 Android 上)(我故意没有写“外部存储” ,因为它不一定是每个设备上的 SD 卡)? SD 卡是否较慢?
  4. 例如,我想从一个 2GB 的文件中读取 2MB 的数据,而这 2MB 的数据分布在文件的许多不同/遥远的部分。所有偏移量都是已知的,因此我创建了一个偏移量的升序,然后使用 BufferedInputStream.read()(例如在 DataInputStream 中)读取它们(并使用 skipBytes() 用于在必要时进行搜索)。因此,在底层文件系统中,这可能需要“遍历”整个 2GB 的文件。 (例如,Android 在需要时使用 linux 函数在文件中查找。)但是,查找与在 PC 硬盘中一样高效吗?就寻道效率而言,SD 卡与内部存储器相比如何?
  5. 典型的数据读取速度是多少? (智能手机内部存储与 SD 卡与 PC 非 SSD 硬盘)

我知道我的具体应用程序的基准测试是必须的,但我也欢迎对此事进行理论上的澄清。

重要:当我问“...寻求与 PC 硬盘一样高效?”时,我(仅)指的不是绝对值,而是它的机制。也就是说,如果它基于相同的逻辑原则工作(=尽可能跳过大部分),或者有一些缺点(例如,这种“基于跳过的”搜索在 SD 卡上是不可能的,因此跳过更多 - - 即不成比例 -- 在智能手机硬件上比在 PC 硬盘上没用)。

最佳答案

试着回答你的问题

  1. 只有一个区别,那就是如果您的文件在应用程序包中(在应用程序内),因为您需要使用不同的方法打开它,但是如果它在应用程序包中并进入包/文件/ 比你可以使用相同的文件文件 bla.. .

  2. 智能手机的内存比 HDD 快,但如果您将其存储在外部 SDCard 中,由于 SDCard 具有最大读写速度,这会有所不同。

  3. 是的,存在差异...如果从内部或 SDCard(不是外部 SD 卡)读取,否则我们不应该使用 1 或 2GB 和 16Gb 的设备进行存储。它在主内存中的所有内容都会运行得更快。

  4. 查找总是一项缓慢的任务,您可以在获取所有需要的日期后关闭流,即使您还没有到达文件末尾。为了加快速度,您可以做的是每次您的应用程序读取一定数量的 KB 或 MB 时重新加载缓存...而不是午餐 asyncTask 去加载它,一旦主线程完成将查找更多数据如果存在。这应该会加快很多,因为您将只在内存中搜索。

  5. 您将需要一个应用程序或编写您自己的应用程序,这应该不会太难,您可以使用处理程序,并在数组或列表中尽可能多地加载,计算字节数,以及在其他内存类型(内部 SD 卡和外部 SDCard)上重复此操作。

关于android - 手机文件读取性能 : internal storage vs. SD卡对比PC硬盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13041882/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com