【问题标题】:Should I use NodeJS streams for small files?我应该对小文件使用 NodeJS 流吗?
【发布时间】:2020-11-13 06:28:36
【问题描述】:

使用流 API 返回二进制/blob 是否总是有意义的,或者在将它们用于小文件时是否有缺点?

我正在考虑使用 NodeJS 代理返回存储在 S3 中的小图像 (~60KB)。这样我就可以在 NodeJS 中添加一层身份验证。根据我的阅读,NodeJS 流对于大文件来说内存效率更高,速度更快,但是,我想知道在小文件中使用流时是否有任何优点或缺点。

【问题讨论】:

  • 小文件可能没有太大区别。与所有与性能相关的事情一样,如果您真的想知道,您应该以两种方式编写代码并测量您认为在比较中最重要的任何参数。我可以想象fs.promises.readFile() 比小文件的读取流更快的情况,但也可能没有太大区别。如果没有流,内存使用量可能会更少,因为流可能以大于 60kb 的缓冲区开始,但您可以根据需要在流中自定义它。

标签: node.js node-streams


【解决方案1】:

我不会在这种情况下使用流。文件太小,无法证明增加的实现复杂性。

如果您对性能有严格要求,则优化图像而不是传输可能会获得更好的结果。

【讨论】:

    猜你喜欢
    • 2018-11-29
    • 2020-04-07
    • 1970-01-01
    • 2014-07-12
    • 1970-01-01
    • 1970-01-01
    • 2011-11-23
    • 2019-05-18
    • 1970-01-01
    相关资源
    最近更新 更多