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 后总时间也一样,但是过程如下:
- 在 0.4s 内可以写完 20 个 chunk,即是 200KB 数据;
- 其余 chunk 每个需要接近 2s 来完成,第 21 ~ 42 个 chunk 总共用时是 42s 左右。
可见总时间仍然一样,但是为什么会有这样的速度下降呢?
1 个回复
FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866
并发的比较快