原始文本来自“微信开发人员”的官方帐户
文件操作太麻烦了?文件读写速度太慢了吗?
...
随着文件系统本地存储容量的持续扩展,文件操作的过程和速度已成为开发人员日益关注的重点。为了在迷你程序/迷你游戏中获得更高效和原子的文件操作效果,微信团队添加了一个新的FD接口,以优化迷你程序的用户体验:
FD接口是由微信团队添加的新型高性能,雾化文件接口类型。与原始文件接口相比,FD接口不仅添加了2个接口以打开文件和关闭文件,还更新了代码实现方法以快速提高的性能:
FD接口一次支持打开文件,允许多个读/写操作。与原始文件接口相比,每个操作都需要三个步骤:打开,写作和关闭文件。 FD接口一次实现一个文件,您可以多次读取和编写文件。操作完成后,将关闭文件以减少重复操作。
FD接口支持文件中只读/写入指定的内容。对于大型文件操作方案,FD接口的此功能可以减少无效的读写和写入和减少文件读取时间。下面的示例表明,原始文件接口需要读取/写所有内容(例如左下图中的黄色突出显示内容),而FD文件接口支持读/写入指定的内容(例如,黄色突出显示的内容右下图),减少读/写消耗时。
与在原始接口上花费的时间相比,以100个连续读取 +编写相同文件(1MB)的实验为例iOS方面的阅读和写作时间减少了46%。 19%。
FD接口减少了重复的操作,减少了无效的阅读和写作,并减少了文件读取和写作时间。那么如何正确应用FD接口?
以打开文件,读取文件内容,修改文件并编写文件为例的过程,原始接口需要每次读取和编写文件,然后完全打开并完全关闭它。
// 获取全局唯一的文件管理器 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接口一次支持文件的多次读取/编写,并支持读取/写入指定的内容,将文件读取和写入时间减少了近50%,从而改善了用户体验。
如果您有与其他Mini计划应用程序有关的任何疑问,则可以在 Open Mini计划交换区发布和互动。技术专家将为您回答并进行深入的交流。