首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Python、Ruby和Node.js比Bash、AWK、Perl慢得多?

为什么Python、Ruby和Node.js比Bash、AWK、Perl慢得多?
EN

Stack Overflow用户
提问于 2017-09-14 02:11:48
回答 1查看 188关注 0票数 0

在制作一个polyglot makefile (启动数千个进程)时,我注意到脚本语言在启动性能上有很大的差异。

Bash

代码语言:javascript
复制
$ TIMEFORMAT='%3R'; time bash -c "echo 'hello world'" > /dev/null
0.002

AWK

代码语言:javascript
复制
$ TIMEFORMAT='%3R'; time awk "BEGIN { print \"hello world\" }" > /dev/null
0.002

Perl

代码语言:javascript
复制
$ TIMEFORMAT='%3R'; time perl -e "print \"hello world\n\"" > /dev/null
0.003

所有这些基本上都是一样的。但是,这些脚本语言中的每一种都是数量级(!)慢点。

Python

代码语言:javascript
复制
$ TIMEFORMAT='%3R'; time python -c "print 'hello world'" > /dev/null
0.023

红宝石

代码语言:javascript
复制
$ TIMEFORMAT='%3R'; time ruby -e "puts 'hello world'" > /dev/null
0.024

Node.js

代码语言:javascript
复制
$ TIMEFORMAT='%3R'; time node -e "console.log('hello world')" > /dev/null
0.082

Python、Ruby和Node.js做了哪些事情来使它们比等价的Bash、AWK和Perl程序慢得多?是事情的发展方式,还是他们的设计有更基本的东西,使他们有如此多的开销?

EN

回答 1

Stack Overflow用户

发布于 2017-09-14 02:31:03

在你的例子中,你实际上只是在衡量它们的开始花费了多少。所以,那些最慢的3是最慢的,因为他们的口译员在开始时做的更多,但这不一定意味着在长时间运行的程序中他们会慢一些。

您可以编写一些长时间运行的示例(在其中您进行了数千次计算),然后您可以看到哪一个在长期运行中是最慢的。

请记住,每个文件都用于不同的事情,因此其中一个处理文件(awk)的速度很可能非常快,而其他的则会非常快地同时处理10s的事情(Node.js)。

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

https://stackoverflow.com/questions/46209434

复制
相关文章

相似问题

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