gpt4 book ai didi

java - 估算 Android 上从 SD 卡读取大文件的时间

转载 作者:行者123 更新时间:2023-12-01 15:53:21 27 4
gpt4 key购买 nike

我想了解(大概)读取 Android SD 卡上存储的大文件(50MB 到 100MB)需要多长时间。我在 Google Nexus One 上的 Android 2.3.3 上使用以下代码。这会给我一个合理的估计吗?我应该使用标准方法吗?另外,使用 native 代码会提高我的文件 I/O 性能吗?

谢谢。

public void readFileFromSDCard() throws IOException
{
long start = System.currentTimeMillis();
long size = 0;
File file = new File(OVERLAY_PATH_BASE + "base-ubuntu.vdi");
try {

InputStream in = new FileInputStream(file);
try {
byte[] tmp = new byte[4096];
int l;
while ((l = in.read(tmp)) != -1) {
size = size + 4096;
}
} finally {
in.close();
}

} catch (FileNotFoundException e) {
e.printStackTrace();
}
long end = System.currentTimeMillis();
Log.e(LOG_TAG,
"Reading file " + file.getAbsolutePath() + " with " + size + "bytes took " + (end-start) + " ms.");

}

最佳答案

对于此代码,最简单的做法是计算每次 while 循环迭代所需的时间,并使用它来估计剩余时间。例如,如果您在一秒内一次迭代中处理 0.1Mb,并且总共有 1Mb 要做,您可以猜测大约还有 9 秒的时间。

不同手机之间的 SD 卡性能差异很大,即使在同一手机上,速度也可能无法预测(例如,对于小文件,我的手机上会出现较大的随机延迟)。我认为我自己不值得做比上述更复杂的事情,例如在处理文件之前对手机进行基准测试。对于大多数用途来说,百分比条可能就足够了。

关于java - 估算 Android 上从 SD 卡读取大文件的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5561590/

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