Javascript 在fs.rename之前不调用fs.exist的缺点?
如果文件存在,我需要重命名它。目前我正在使用下面的代码Javascript 在fs.rename之前不调用fs.exist的缺点?,javascript,node.js,performance,file,fs,Javascript,Node.js,Performance,File,Fs,如果文件存在,我需要重命名它。目前我正在使用下面的代码 fs.rename(oldpath, newpath, function (err) { /*don't care*/ }) 这在性能或其他问题方面是否有缺点,而不是在重命名之前先执行fs.exists()或fs.stat()?我觉得如果我需要检查它是否存在,然后重命名,这是2个操作,但如果我只是重命名,这是1个操作 我找不到这个函数的代码实现,但我知道在某些编程语言中,当文件不存在时会抛出并处理异常,这可能会对系统造成负担,只是想看看这
fs.rename(oldpath, newpath, function (err) { /*don't care*/ })
这在性能或其他问题方面是否有缺点,而不是在重命名之前先执行fs.exists()或fs.stat()?我觉得如果我需要检查它是否存在,然后重命名,这是2个操作,但如果我只是重命名,这是1个操作
我找不到这个函数的代码实现,但我知道在某些编程语言中,当文件不存在时会抛出并处理异常,这可能会对系统造成负担,只是想看看这里是否也是这样。我在一个拥有数万亿请求的超大系统上工作,因此每一纳秒都很重要。
fs.rename
不检查fs.stat
,您可以编写这两个变体并测试它们的时间消耗等。因为fs.rename()实现了一个异常应该没什么大不了的。然而,我会去检查和重命名。另一方面,我认为,@DanD。说得很好,看来我们还没有达成共识。在某些编程语言中,异常会对系统造成很大的负担,所以我只是想看看这是否是一个问题。我想我会写一些测试来找出答案。不是fs.exists(),具体来说,它被fs.access()或fs.stat()替换,问题的关键是检查存在性是慢还是快。