Python vs Bash-在性能方面,每个任务胜过其他任务?

发布于 2021-01-29 17:10:21

显然,Python更加用户友好,在Google上进行的快速搜索显示了许多结果,这些结果表明,由于Python是字节编译的,因此通常速度更快。我什至发现声称可以在基于字典的操作上看到超过2000%的改进。

您对此事有何经验?每个人在哪种任务上都是明显的赢家?

关注者
0
被浏览
46
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    典型的大型机流程…

    Input Disk/Tape/User (runtime) --> Job Control Language (JCL) --> Output Disk/Tape/Screen/Printer
                                       |                          ^
                                       v                          |
                                       `--> COBOL Program --------'
    

    典型的Linux流程…

    Input Disk/SSD/User (runtime) --> sh/bash/ksh/zsh/... ----------> Output Disk/SSD/Screen/Printer
                                       |                          ^
                                       v                          |
                                       `--> Python script --------'
                                       |                          ^
                                       v                          |
                                       `--> awk script -----------'
                                       |                          ^
                                       v                          |
                                       `--> sed script -----------'
                                       |                          ^
                                       v                          |
                                       `--> C/C++ program --------'
                                       |                          ^
                                       v                          |
                                       `--- Java program ---------'
                                       |                          ^
                                       v                          |
                                       :                          :
    

    外壳是Linux的粘合剂

    像sh / ksh / bash / …这样的Linux shell提供输入/输出/流控制指定功能,就像旧的大型机Job Control
    Language
    …一样,但是在类固醇上!它们本身就是图灵完整的语言,同时经过优化以有效地与O
    / S支持的任何语言编写的其他执行过程之间有效地传递数据和控制。


    大多数Linux应用程序,无论程序的大部分语言是哪种语言,都取决于shell脚本,而 Bash
    已成为最常见的应用程序。单击桌面上的图标通常会运行一个简短的 Bash
    脚本。该脚本直接或间接知道所有所需文件的位置,并设置变量和命令行参数,最后调用程序。这是shell最简单的用法。

    然而,众所周知,如果没有成千上万的外壳脚本来启动系统,响应事件,控制执行优先级以及编译,配置和运行程序,几乎不会成为Linux。其中许多都是非常大而复杂的。

    Shell提供了一个基础架构,使我们可以使用在运行时而不是编译时链接在一起的预构建组件。这些组件本身就是独立的程序,可以单独使用或以其他组合使用,而无需重新编译。调用它们的语法与
    Bash 内置命令的语法没有区别,实际上,有许多内置命令,在系统上也有独立的可执行文件,这些命令通常具有其他选项。

    PythonBash 在性能上没有语言范围的差异。这完全取决于每个编码方式以及调用哪些外部工具。

    任何 众所周知的工具,例如 awk,sed,grep,bc,dc,tr 等,都将以任何一种语言进行操作。然后,对于没有图形用户界面的任何事物,
    Bash 都是首选的,因为从 Bash之 类的工具中调用和传递数据比从 Python 那里更容易,更有效。

    性能

    它的总体吞吐量和/或响应性是好于或差于等效的 Python* ,取决于 Bash
    shell脚本调用的程序及其对子任务的适用性。使事情复杂化的是,与大多数语言一样, Python
    也可以调用其他可执行文件,尽管它比较麻烦,因此不常用。
    ***

    用户界面

    一个领域 的Python 是明显的赢家是用户界面。这使其成为构建本地或客户端服务器应用程序的极佳语言,因为它本身支持GTK图形,并且比
    Bash 直观得多。

    Bash 仅能理解文本。必须为GUI调用其他工具,并从其他工具传回数据。一个 Python的 脚本是一个选项。二进制文件(例如
    YAD,Zenity和GTKDialog) 是更快但不太灵活的选项。

    虽然像 Bash 这样的shell可以与YadGtkDialog(GTK
    +函数的嵌入式XML似的接口)
    dialogxmessage等GUI很好地配合使用,但
    Python的 功能更加强大,因此对于复杂的GUI窗口也更好。

    概要

    使用Shell脚本进行构建就像使用台式机组装具有现成组件的计算机一样。

    使用 PythonC ++ 或大多数其他语言进行构建更像是通过像智能手机一样将芯片(库)和其他电子零件焊接在一起来构建计算机。

    最好的结果通常是通过使用多种语言来获得的,每种语言都可以尽其所能。一个开发人员称此为“多语言编程”。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看