Shell脚本与高级解释语言(C#/ Java /等)的性能比较

dfe*_*aro 13 c# java shell performance interpreted-language

首先 - 这并不意味着'这是一个更好,无知的非离子战争线'...而是,我通常需要帮助做出一个架构决定/论证提出给我的老板.

跳过细节 - 我只是很想知道并找到任何已经完成Shell与[插入通用编程语言(解释))性能比较的人的结果,例如C#或Java ......

令人惊讶的是,我花了一些时间在谷歌搜索这里找不到任何这些数据.有没有人在不同的用例中做过这些比较; 点击一个数据库就像在一个XYX#循环中执行不同类型的SQL(Oracle pref,但MSSQL会这样做)查询,例如任何CRUD操作 - 并且也没有命中数据库而只是常规的50k循环类型比较进行不同类型的计算和那种性质的东西?

特别是 - 就目前而言,我需要比较从shell脚本命中Oracle DB,比如说C#(同样,任何被解释的GPPL都可以,甚至像Python这样的更高级别的GPPL).但我还需要了解标准编程计算/指令/等...

在你问'为什么不自己写一个快速测试之前?答案是:我一直是Windows开发人员,我的整个生活/职业生涯,对Shell脚本的知识非常有限 - 更不用说*nix作为一个整体....所以从这里有经验丰富的人提问的问题就是因为我们处于接近普遍的最后期限紧缩状态,因此它是有益的,更不用说节省时间了;).

igo*_*ouy 8

曾几何时,你们的大计算机语言大战确实包含了一些shell脚本.

因此,2004互联网档案馆的礼貌-

请注意,shell脚本没有用于许多测试的程序.

    Score Missing-Tests

Java 20     1

Perl 16     0

Python 16   0

gawk 12     6 

mawk 10     6 

bash 7      12  
Run Code Online (Sandbox Code Playgroud)

注意 shell脚本有时可以小而快:-)

"撤消文件"

        CPU (sec)   Mem (KB)    Lines Code

bash    0.0670      1464        1

C gcc   0.0810    4064        59

Python  0.3869    13160       6
Run Code Online (Sandbox Code Playgroud)


Pau*_*ce. 6

它高度依赖于脚本正在做什么.我已经看到写得不好的shell脚本通过简单的更改加速了一个,两个甚至三个数量级.

通常,shell脚本只是一些粘合逻辑,它运行通常编译为C或C++的实用程序.如果是这种情况,可能没有太多可以做的事情来加快速度.如果咕噜咕噜的工作是由编写得很好的实用工具完成的,那么它只是在很快就浪费了很多精力.

也就是说,Python或Perl将比shell脚本快得多,但VM或本机代码会更快.

由于您无法告诉我们任何细节,我们无法提供具体的帮助.

如果你想看一个简单的比较演示,试试我的纯Bash实现hexdump并将它与真实的东西进行比较:

$ time ./bash-hexdump /bin/bash > /dev/null
real    7m17.577s
user    7m2.570s
sys     0m14.745s
$ time hexdump -C /bin/bash > /dev/null
real    0m2.459s
user    0m2.260s
sys     0m0.176s
Run Code Online (Sandbox Code Playgroud)

Bash版本速度慢的一个主要原因是它逐个字符地读取文件,这是处理空字节所必需的(shell在处理二进制数据方面不是很好),但主要原因是执行速度.以下是我发现的Python脚本示例:

$ time ./hexdump.py /bin/bash > /dev/null
real    0m11.694s
user    0m11.605s
sys     0m0.040s
Run Code Online (Sandbox Code Playgroud)