所在的位置: js >> js前景 >> Deno和Nodejs的一些比较

Deno和Nodejs的一些比较

Node-Deno常用命令比较DenovsNode性能比较:写入文件

deno代码

不需要导入,因为writeTextFileAPI是核心运行时的一部分。

asyncfunctiontest(runs:Number,data:string){for(leti=0;iruns;i++){awaitDeno.writeTextFile("./testdata/output.txt",data);}}

nodejs代码

需要从核心fs模块导入写文件API。

const{writeFile}=require("fs").promises;asyncfunctiontest(runs,data){for(leti=0;iruns;i++){awaitwriteFile("./testdata/output.txt",data);}}测试数据

测试运行包括写入给定文件10K次。有四种不同大小的测试数据(1K、10K、K和2M)。源数据是通过在启动时读取文件来准备的:

$ls-l1K.txt-rw-r--r--

1mayankcstaffMar:K.txt$ls-l10K.txt-rw-r--r--

1mayankcstaffMar:K.txt$ls-lK.txt-rw-r--r--

1mayankcstaffMar:35K.txt$ls-l2M.txt-rw-r--r--1mayankcstaffFeb:M.txt版本

Deno和Node.js版本如下所示:

$deno-Vdeno1.20.1$node-vv17.7.2

两者都是撰写本文时(年3月19日)的最新消息。

测试结果

每个文件大小的测试结果如下:

1K数据

Deno的性能与Node相当.js

10K数据

Deno的性能与Node相当.js

50万数据

Deno的性能比Node略慢.js

万数据

Deno的性能略快于Node.js

Deno与Node性能比较:读取文件测试

测试只是将给定的文本文件作为字符串读取。对于不同的文件大小,该测试重复10K次。Deno和Node.js代码如下所示:

deno代码

不需要导入,因为readTextFileAPI是核心运行时的一部分。

asyncfunctiontest(runs:Number){for(leti=0;iruns;i++){constfileData=awaitDeno.readTextFile(`./testdata/${fileName}`);}}

node代码

需要从核心fs模块导入readFileAPI。

const{readFile}=require("fs").promises;asyncfunctiontest(runs){for(leti=0;iruns;i++){constfileData=awaitreadFile(`./testdata/${fileName}`,{encoding:"utf8",});}}测试数据

测试运行包括读取给定文件10K次。有四个不同大小的测试文件(1K、10K、K和2M):

$ls-l1K.txt-rw-r--r--

1mayankcstaffMar:K.txt$ls-l10K.txt-rw-r--r--

1mayankcstaffMar:K.txt$ls-lK.txt-rw-r--r--

1mayankcstaffMar:35K.txt$ls-l2M.txt-rw-r--r--1mayankcstaffFeb:M.txt版本

Deno和Node.js版本如下所示:

$deno-Vdeno1.20.1$node-vv17.7.2测试结果

每个文件大小的测试结果如下:

.txt

节点比德诺略快

10千.txt

节点比德诺略快

.txt

Node几乎是Deno的三倍

万.txt

Node比Deno快25%左右

结论

对于小文件大小,Deno的性能可与Node.js相媲美。但是,对于大文件大小,Node.js的性能优于Deno。

DenovsNode性能:APIProxy

这一次,我们将看到充当API代理的HTTP服务器的性能比较。服务器向模拟服务器发送另一个HTTP请求,获取包含随机ID的响应,对其进行解析,然后发送随机ID以响应其调用方。

配置环境

性能比较在以下环境中执行:

系统:配备M1处理器和16G内存的MacBookPro

本地:SUT和测试仪位于同一系统上

德诺版本:1.16.4

节点版本:17.2.0

测试数据有一个模拟API服务将由Deno和Node.js代理使用。模拟API服务生成一个随机UUID并将其发送回调用方。模拟API服务是用Deno编写的。下面是模拟API服务的代码:

import{listenAndServe}from"


转载请注明:http://www.aierlanlan.com/cyrz/7572.html