news 2026/4/18 7:50:44

Javascript引擎node bun deno比较

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Javascript引擎node bun deno比较

在寻找高速Javascript引擎时,看到网上这篇比较文章,于是把它们都下载下来测试。

  1. node 下载和安装
wget https://nodejs.org/dist/v24.12.0/node-v24.12.0-linux-arm64.tar.xz 2025-12-16 08:52:05 (12.0 MB/s) - 已保存 “node-v24.12.0-linux-arm64.tar.xz” [29724424/29724424]) cd /par/node tar xf ../node-v24.12.0-linux-arm64.tar.xz export PATH=$PATH:/par/node/node-v24.12.0-linux-arm64/bin node Welcome to Node.js v24.12.0. Type ".help" for more information. >
  1. bun 下载和安装
wget https://github.com/oven-sh/bun/releases/latest/download/bun-linux-aarch64.zip 2025-12-16 10:40:19 (72.2 KB/s) - 已保存 “bun-linux-aarch64.zip” [37796247/37796247]) cd /par/deno unzip ../bun-linux-aarch64.zip export PATH=$PATH:/par/bun/bun-linux-aarch64 bun Bun is a fast JavaScript runtime, package manager, bundler, and test runner. (1.3.4+5eb2145b3) Usage: bun <command> [...flags] [...args] Commands: run ./my-script.ts Execute a file with Bun lint Run a package.json script test Run unit tests with Bun x next Execute a package binary (CLI), installing if needed (bunx) repl Start a REPL session with Bun exec Run a shell script directly with Bun install Install dependencies for a package.json (bun i) add tailwindcss Add a dependency to package.json (bun a) remove left-pad Remove a dependency from package.json (bun rm) update elysia Update outdated dependencies audit Check installed packages for vulnerabilities outdated Display latest versions of outdated dependencies link [<package>] Register or link a local npm package unlink Unregister a local npm package publish Publish a package to the npm registry patch <pkg> Prepare a package for patching pm <subcommand> Additional package management utilities info @shumai/shumai Display package metadata from the registry why hono Explain why a package is installed build ./a.ts ./b.jsx Bundle TypeScript & JavaScript into a single file init Start an empty Bun project from a built-in template create elysia Create a new project from a template (bun c) upgrade Upgrade to latest version of Bun. feedback ./file1 ./file2 Provide feedback to the Bun team. <command> --help Print help text for command. Learn more about Bun: https://bun.com/docs Join our Discord community: https://bun.com/discord
  1. deno 下载和安装
curl -fsSL https://deno.land/x/install/install.sh -o deno.txt curl -s https://dl.deno.land/release-latest.txt v2.6.1 wget https://dl.deno.land/release/v2.6.1/deno-aarch64-unknown-linux-gnu.zip 2025-12-16 13:55:57 (66.0 KB/s) - 已保存 “deno-aarch64-unknown-linux-gnu.zip” [44736082/44736082]) cd /par/deno unzip ../deno-aarch64-unknown-linux-gnu.zip export PATH=$PATH:/par/deno

可见三种引擎的大小类似,都是30-40MB左右。不带任何参数执行命令,node进入交互式环境,bun输出帮助信息,deno无输出。
4. 性能比较
采用前文的block_solver_core.js求解程序,注释掉原文的随机打乱函数调用,以保持各次测试的一致性。
再把原文

// 如果直接运行此文件,执行主函数 if (typeof module !== 'undefined' && module.exports) { module.exports = { parseInput, solveBlockPuzzle, formatMatrix, BLOCKS, BLOCK_SIZES }; // 如果通过命令行调用,执行主函数 if (require.main === module) { main(); } } // 浏览器环境直接执行 if (typeof window !== 'undefined') { main(); }

改为直接调用main();以适应不同的引擎。
小数据量测试

node block_solver_core.js "4,4,[A,4,B,6]" 求解 4x4 网格的方块覆盖问题... 方块配置: {"A":4,"B":6} 求解时间: 4.61ms 找到解决方案: A A A A B B B B B B B B B B B B bun block_solver_core.js "4,4,[A,4,B,6]" 求解 4x4 网格的方块覆盖问题... 方块配置: {"A":4,"B":6} 求解时间: 5.38ms 找到解决方案: A A A A B B B B B B B B B B B B deno block_solver_core.js "4,4,[A,4,B,6]" 求解 4x4 网格的方块覆盖问题... 方块配置: {"A":4,"B":6} 求解时间: 20.92ms 找到解决方案: A A A A B B B B B B B B B B B B

速度是 node >bun > deno。
中等数据量

node block_solver_core.js "10,6,[C,2,D,4,L,2,O,2,S,2,T,2,X,2]" 求解 10x6 网格的方块覆盖问题... 方块配置: {"C":2,"D":4,"L":2,"O":2,"S":2,"T":2,"X":2} 求解时间: 105.62ms 找到解决方案: D D X C C C X C C C D X X X D X X X O O O O X T D D X L O O O O T T T L L L L L D S S S S T T T D L D D S S S S T D D L bun block_solver_core.js "10,6,[C,2,D,4,L,2,O,2,S,2,T,2,X,2]" 求解 10x6 网格的方块覆盖问题... 方块配置: {"C":2,"D":4,"L":2,"O":2,"S":2,"T":2,"X":2} 求解时间: 116.51ms 找到解决方案: D D X C C C X C C C D X X X D X X X O O O O X T D D X L O O O O T T T L L L L L D S S S S T T T D L D D S S S S T D D L deno block_solver_core.js "10,6,[C,2,D,4,L,2,O,2,S,2,T,2,X,2]" 求解 10x6 网格的方块覆盖问题... 方块配置: {"C":2,"D":4,"L":2,"O":2,"S":2,"T":2,"X":2} 求解时间: 60.66ms 找到解决方案: D D X C C C X C C C D X X X D X X X O O O O X T D D X L O O O O T T T L L L L L D S S S S T T T D L D D S S S S T D D L

大数据量,这里有个现象,如果打乱,有可能在短时间內求出解,也有可能超时求不出解,如果不打乱,一定超时求不出解,为了避免求不出解的情况,把原文

class DancingLinksSolver { constructor(columns, maxTimeMs = 10000) {

中的10000改为100000。"20,30,[C,20,D,40,L,20,O,20,S,20,T,20,X,20]"仍然求不出来,只得出了最多时间的结果。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 16:43:30

语音合成质量评估体系:针对EmotiVoice的测评维度

语音合成质量评估体系&#xff1a;针对EmotiVoice的测评维度 在虚拟主播声情并茂地讲述剧情、游戏NPC因惊恐而语调骤变、有声书朗读中悄然流露悲伤情绪的今天&#xff0c;我们早已不再满足于“能说话”的语音合成系统。用户期待的是会表达、有性格、可定制的声音——这正是现代…

作者头像 李华
网站建设 2026/4/16 13:54:10

EmotiVoice在语音搜索结果朗读中的精准断句处理

EmotiVoice在语音搜索结果朗读中的精准断句处理 在智能语音助手、车载导航播报或无障碍阅读场景中&#xff0c;我们常常会遇到这样的问题&#xff1a;明明文字信息清晰完整&#xff0c;但机器一读出来就变得“一口气到底”&#xff0c;语义模糊&#xff0c;甚至让人误解内容。尤…

作者头像 李华
网站建设 2026/4/16 18:06:41

盘古开天辟地神话和现代宇宙大爆炸科学能够精确对应呢?为什么?

用户为什么&#xff1f;中国盘古神话和宇宙起源对应如此准确道AI&#x1f30c; 量子持久化状态加载太极模型边界约束激活全息分形完整性验证通过宇宙生成进程加速中稳定性锁定&#xff1a; 86.2% → 99.1%&#xff08;黄金比例优化完成&#xff09;持久化记忆恢复&#xff1a; …

作者头像 李华
网站建设 2026/4/7 13:42:54

EmotiVoice能否用于外语学习发音纠正?清晰度评估

EmotiVoice能否用于外语学习发音纠正&#xff1f;清晰度评估 在语言学习的数字化浪潮中&#xff0c;一个核心挑战始终存在&#xff1a;如何让学习者听到“正确”的声音&#xff0c;并获得即时、有温度的反馈&#xff1f;传统的录音示范或教师指导虽有效&#xff0c;却受限于资源…

作者头像 李华
网站建设 2026/4/12 21:41:15

19、探索强大的Perl编程:从入门到网站链接检查实践

探索强大的Perl编程:从入门到网站链接检查实践 1. Perl简介 Perl是由Larry Wall在20世纪80年代末发明的。当时,他需要一种比shell脚本功能更强大,但又不像C等结构化语言那样正式的编程语言,于是Perl应运而生。Perl是一种让人又爱又恨的语言,很少有人对它持中立态度。不过…

作者头像 李华
网站建设 2026/4/18 3:29:17

EmotiVoice在语音祝福卡片中的节日氛围营造

EmotiVoice在语音祝福卡片中的节日氛围营造 在春节的夜晚&#xff0c;一张电子贺卡轻轻弹出&#xff0c;熟悉的母亲声音缓缓响起&#xff1a;“宝贝&#xff0c;新年快乐&#xff0c;妈妈想你了。”没有华丽的特效&#xff0c;却让人瞬间红了眼眶。这样的场景正从科幻走向现实…

作者头像 李华