首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Deno慢FS性能

Deno慢FS性能
EN

Stack Overflow用户
提问于 2022-02-18 14:44:00
回答 1查看 317关注 0票数 1

我注意到在deno中读取文件的速度非常缓慢,恐怕我做错了。(有点傻?)

代码语言:javascript
复制
const file = Deno.readFileSync(path)

有什么建议吗?或者其他更快的方法?我应该用Deno.run代替吗?在您的经验中,Deno.run的利弊是什么?

更新#1:

我发现这个模块使用的流提供了一些更快的速度,但是与bash相比,它非常慢:

代码语言:javascript
复制
$ time deno run --allow-read https://deno.land/std@0.126.0/examples/cat.ts movie.mp4 |  wc -l
4066379

real    0m1.890s
user    0m1.608s
sys     0m1.355s

$ time cat movie.mp4 | wc -l
4066379

real    0m0.295s
user    0m0.098s
sys     0m0.372s

$ du -sh movie.mp4 
995M    movie.mp4

更新#2:

由于对网络速度和Deno启动速度的担忧,我制作了这个脚本,它让它们分别运行:

代码语言:javascript
复制
import {
  copy,
  writeAllSync,
} from "https://deno.land/std@0.126.0/streams/conversion.ts";

const filenames = "movie.mp4";

//########## DENO ############

const before1 = performance.now();

const file = await Deno.open(filenames);
await copy(file, Deno.stdout);
file.close();

const after1 = performance.now() - before1;

const text1 = new TextEncoder().encode(after1.toString() + "\n");
writeAllSync(Deno.stderr, text1);

//########## CMD ############

const before2 = performance.now();

const p = Deno.run({
  cmd: ["cat", `${filenames}`],
});

await p.status()

const after2 = performance.now() - before2;

const text2 = new TextEncoder().encode(after2.toString() + "\n");
writeAllSync(Deno.stderr, text2);

最好的结果是:

代码语言:javascript
复制
$ deno run --allow-run --allow-read test.ts >/dev/null
636
82
EN

回答 1

Stack Overflow用户

发布于 2022-02-19 15:04:19

在撰写这篇评论之前,我想提一下德诺这个众所周知的问题没有解决的办法。

denoland/deno仓库中存在多个已打开的问题。如果有任何更新,我会发布一个更新。

举几个例子:

#13720

#10157

#803

#246

#13608

如果你找到了,请告诉我。

谢谢。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71175337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档