h***@126.com
h***@126.com
  • 发布:2022-06-16 13:35
  • 更新:2022-06-17 08:48
  • 阅读:414

大文件读写太慢

分类:uni-app

我有一个需求,读取csv文件。
该文件28800行,每行92列,大小约为15M。
我的代码如下:

        let fileReader = new plus.io.FileReader();  
        const now = Date.now();  
        console.log(`--->读取文件${file.name}开始<---`);  
        fileReader.readAsDataURL(file, 'utf-8');  
        // fileReader.readAsText(file,'utf-8');  
        fileReader.onloadend = function(evt) {  
          console.log(`--->读取文件${file.name}结束,共耗时:${(Date.now()-now)/1000}秒。<---`);  
          let resultCsv = evt.target.result

如果我使用readAsDataURL方法,大约2秒;但如果我使用readAsText方法,大约40秒。

请问如何提高效率?

2022-06-16 13:35 负责人:无 分享
已邀请:
FullStack

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

原生插件

h***@126.com

h***@126.com (作者)

自问自答,该问题已解决。
readAsText效能太差,使用readAsDataURL,然后借助一些base64库,自己转成需要的文本。
时间从40秒减少到2秒。

至于原生插件,因为我没有安卓开发经验,看了半天,没弄明白。但我相信应该也可以解决。

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