源码论坛,商业源码下载,尽在锦尚中国商业源码论坛

标题: 微信小程序升级FD接口后文件操作接口FD怎么用? [打印本页]

作者: 洪七公    时间: 2023-3-23 13:49
标题: 微信小程序升级FD接口后文件操作接口FD怎么用?

前言:

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

首先:FD接口是什么?

官方介绍:

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



FD接口有多强?

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



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

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

FD怎么用?

FD其实就是原来的FileSystemManager的相关接口的升级版,原来打开文件,修改文件内容,再保存文件的代码是这样的:
  1. // 获取全局唯一的文件管理器
  2. const fs = wx.getFileSystemManager()
  3. // 读取文件
  4. data = fs.readFileSync(“FileA”)
  5. // 修改文件内容
  6. data = modify(data)
  7. // 写入文件
  8. fs.writeFileSync(“FileA”, data)
复制代码

改用FD读写,是这样的:
  1. // 获取全局唯一的文件管理器
  2. const fs = wx.getFileSystemManager()
  3. // 打开文件
  4. fd = fs.openSync(“FileA”)
  5. // 读取文件
  6. fs.readSync({ fd, arrayBuffer, offset, length, position })
  7. // 修改文件内容
  8. data = modify(data)
  9. // 写入文件
  10. fs.writeSync({ fd, data, offset, length, position })
  11. // 关闭文件
  12. fs.closeSync({fd: fd })
复制代码

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

好了,今天关于微信小程序升级FD接口后文件操作接口FD怎么用的详细解释到这了,感谢大家对锦尚中国源码论坛的喜欢和支持,更多内容请搜索锦尚中国获取!






欢迎光临 源码论坛,商业源码下载,尽在锦尚中国商业源码论坛 (https://bbs.52jscn.com/) Powered by Discuz! X3.3