l***@qq.com
l***@qq.com
  • 发布:2022-04-03 03:31
  • 更新:2022-04-04 00:55
  • 阅读:434

Android写文件达到200KB后速度下降怎么回事?

分类:Native.js
async function writeBinary(path, bytes) {  
    const FileOutputStream = plus.android.importClass('java.io.FileOutputStream');  
    const out =new FileOutputStream(path);  
    const chunks = _.chunk(bytes, 10240);  
    // 大约 20*10KB = 200KB 后写入速度极慢,接近每 2s 写 10KB,前 200KB 则是 0.4s 写完  
    for (const i in chunks) {  
        logger.trace('start out.write ' + i + 'th chunk');  
        out.write(chunks[i]);  
    }  
    out.flush();  
    out.close();  
}

以上是代码片段,其中将 bytes 切成大小为 10KB 的 chunk,是为了更清楚地分析写出的过程。
在不分 chunk 的情况下,实测写出 420KB 需要 42 左右,切分 chunk 后总时间也一样,但是过程如下:

  1. 在 0.4s 内可以写完 20 个 chunk,即是 200KB 数据;
  2. 其余 chunk 每个需要接近 2s 来完成,第 21 ~ 42 个 chunk 总共用时是 42s 左右。

可见总时间仍然一样,但是为什么会有这样的速度下降呢?

2022-04-03 03:31 负责人:无 分享
已邀请:
FullStack

FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866

并发的比较快

该问题目前已经被锁定, 无法添加新回复