node.js - 为什么附加到文件比写入文件更快?
问题描述
我正在尝试不同的写入操作,并注意到追加到现有文件的速度是向文件写入相同字符串的 2 倍。这个简单的脚本运行 1000 次appendFileSync
or迭代writeFileSync
。writeFileSync
需要 150 毫秒,而appendFileSync
只需要 70 毫秒。
是什么让追加比写入更快?
function writeTest(){
let start = new Date().getTime();
for (let index = 0; index < 1000; index++) {
fs.writeFileSync('db', 'muc,10'); // or fs.appendFileSync("db","muc,10")
}
let end = new Date().getTime();
console.log(end-start);
}
writeTest();
解决方案
每次调用 writeFileSync 时,如果一个文件不存在,它会创建一个新文件,如果一个文件存在,它会替换它。替换文件比仅将数据添加到现有文件需要更长的时间。
推荐阅读
- flutter - 颤振:google_mobile_ads 酒吧。如何实现 GADLandscapeAnchoredAdaptiveBannerAdSizeWithWidth & GADPortraitAnchoredAdaptiveBannerAdSizeWithWidth?
- c# - C# 静态方法是否同步和锁定?
- visual-studio - 查找 Visual Studio PATH/LIB 文件的问题
- python - 并行处理没有提高效率?
- android - 如何在 Jetpack compose 中制作 FlipCard 动画
- swift - 无法导入 EventKitUI。错误无法构建 Objective-C 模块
- c++ - 在 dll 中调用函数,同时在其中包含 dll/lib 文件
- coq - 为什么在相当简单的情况下无法进行案例分析
- python - 输出到终端和输出到文件得到不同的结果
- rest - 即使在 GET 请求中,我们也可以使用 SCIM 属性的“请求”可返回属性吗?