|
前言:
开发过微信小程序的,用微信小程序操作过文件的应该知道,微信有一组文件管理接口——FileSystemManager接口组,天下网吧了解到,近日官方升级了相关的接口到FD接口。FD接口是什么鬼?一起来看看.
首先:FD接口是什么?
官方介绍:
FD 接口是微信团队新增的高性能、原子化的文件接口类型。对比原有文件接口,FD 接口不仅增加打开文件与关闭文件 2 个接口,而且更新代码实现方式,快速提升小程序性能:
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方式多了一个打开文件的操作,相当于其他开发语言的获取文件句柄,然后可以重复,多次的对文件句柄进行读写操作,而不需要重新打开文件,这样自然提供了读写性能,特别适合在需要大量、高频读写文件时性能提升会很明显!
好了,今天关于微信小程序升级FD接口后文件操作接口FD怎么用的详细解释到这了,感谢大家对锦尚中国源码论坛的喜欢和支持,更多内容请搜索锦尚中国获取!
|
|