在制作多语言生成文件(启动数千个进程)时,我注意到脚本语言的启动性能差异很大。为什么Python,Ruby和Node.js比Bash,AWK,Perl慢得多?
猛砸
$ TIMEFORMAT='%3R'; time bash -c "echo 'hello world'" > /dev/null
0.002
AWK
$ TIMEFORMAT='%3R'; time awk "BEGIN { print \"hello world\" }" > /dev/null
0.002
的Perl
$ TIMEFORMAT='%3R'; time perl -e "print \"hello world\n\"" > /dev/null
0.003
所有这些基本上是相同的。但是,然后这些脚本语言中的每一个都是一个数量级(!)较慢。
的Python
$ TIMEFORMAT='%3R'; time python -c "print 'hello world'" > /dev/null
0.023
红宝石
$ TIMEFORMAT='%3R'; time ruby -e "puts 'hello world'" > /dev/null
0.024
Node.js的
$ TIMEFORMAT='%3R'; time node -e "console.log('hello world')" > /dev/null
0.082
什么东西种类是从Python,Ruby,Node.js的和做的,以使他们如此慢得多比等效的Bash,AWK和Perl程序还要多?这只是事情发生的方式,还是有一些更重要的关于他们的设计,使他们有更多的开销?
红宝石加载宝石,试试'ruby --disable-gems -e“...”' – Stefan