微信小程序升级FD接口,文件操作接口FD怎么用?这篇文章全告诉你了

前言:

开发过微信小程序的,用微信小程序操作过文件的应该知道,微信有一组文件管理接口——FileSystemManager接口组,天下网吧了解到,近日官方升级了相关的接口到FD接口。FD接口是什么鬼?一起来看看:

首先:FD接口是什么?

官方介绍:

FD 接口是微信团队新增的高性能、原子化的文件接口类型。对比原有文件接口,FD 接口不仅增加打开文件与关闭文件 2 个接口,而且更新代码实现方式,快速提升小程序性能:

能力 原有接口 FD 接口
打开文件 open / openSync
读取文件 readFile / readFileSync read / readSync
写入文件

writeFile / writeFileSyncappendFile / appendFileSync

write / writeSync
截断文件 truncate / truncateSync ftruncate / ftruncateSync
获取文件状态信息 stat / statSync fstat / fstatSync
关闭文件 close / closeSync

- FD接口有多强-

FD 接口支持一次打开文件,即可进行多次读 / 写操作。对比原有文件接口每项操作均需要打开、写入、关闭文件 3 个步骤,FD 接口实现一次打开文件,即可多次读取、写入文件,操作完成再关闭文件,减少重复操作。

FD 接口支持只读 / 写文件中指定内容。针对大文件操作场景,FD 接口的该项特性能够减少无效读写,降低文件读写时间。 如下图例子,原有文件接口需要全部读 / 写内容(如左下图黄色高亮内容),FD 文件接口则支持只读 / 写指定内容(如右下图黄色高亮内容),降低读写耗时。

以连续 100 次读 + 写同一个文件 (1MB) 的实验为例,对比原有接口读写文件耗时,FD 接口在安卓端读写文件耗时降低 46%,在 iOS 端读写耗时降低 19%。

FD怎么用?

FD其实就是原来的FileSystemManager的相关接口的升级版,原来打开文件,修改文件内容,再保存文件的代码是这样的:


// 获取全局唯一的文件管理器
const fs = wx.getFileSystemManager()
// 读取文件
data = fs.readFileSync(“FileA”)
// 修改文件内容
data = modify(data)
// 写入文件
fs.writeFileSync(“FileA”, data)

改用FD读写,是这样的:

// 获取全局唯一的文件管理器
const fs = wx.getFileSystemManager()
// 打开文件
fd = fs.openSync(“FileA”)
// 读取文件
fs.readSync({ fd, arrayBuffer, offset, length, position })
// 修改文件内容
data = modify(data)
// 写入文件
fs.writeSync({ fd, data, offset, length, position })
// 关闭文件
fs.closeSync({fd: fd })

可以看出,变化并不大,FD方式多了一个打开文件的操作,相当于其他开发语言的获取文件句柄,然后可以重复,多次的对文件句柄进行读写操作,而不需要重新打开文件,这样自然提供了读写性能,特别适合在需要大量、高频读写文件时性能提升会很明显!

参考资料:

微信开发者公众号文章:

文件读写更快了 开发过程更快乐

本文来源:天下网吧 作者:天下码农

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系Email:support@txwb.com,系统开号,技术支持,服务联系QQ:1175525021本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行