社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

PHP、Python 竟上榜最慢的现代编程语言

程序人生 • 3 年前 • 271 次点击  

【CSDN 编者按】创建软件时,我们都要考虑的选择哪门编程语言。每种语言的实现方式不同,因此每种语言都有各自的优势。然而,对于有些编程语言来说,速度根本不是它们的优势。

编译 | 弯月   责编 | 张文
出品 | CSDN(ID:CSDNnews)
编程语言的问世,距今已有几十年的历史了。每种语言的诞生都是为了满足特定的需求。
截止到今天,全世界共有大约 700 多种编程语言。然而,仍处于活动状态的只有 250 来种,其余的都被编程社区抛弃了。(来自维基百科的最新数据)
性能一直是程序员非常关心的方面。很久以前,程序的执行需要花费几天的时间,如今我们以秒为单位来度量。这完全要归功于电子行业的发展进步。
硬件的发展速度遵循摩尔定律。在电子产品中,速度和性能取决于特定芯片可以拥有的晶体管数量。根据摩尔定律,这个数字每两年就会翻一番。这就是为什么如今手机的速度和性能甚至远远超过了 1990 年代的超大型计算机。
对于计算机科学来说,代码的运行速度和 PC 的运行速度完全是两码事。英特尔和 AMD 出色地推动了 PC 机的运行速度。然而,创建健壮、快速的程序的重任就落到了软件工程师的肩上。
创建软件时,我们都要考虑的一件事是编程语言。每种语言的实现方式不同,因此每种语言都有各自的优势。然而,对于有些编程语言来说,速度根本不是它们的优势。
如果你想构建一个程序,运行游戏或执行大量数学计算,则最好避开速度比较慢的编程语言。
通常,编程语言可以大致分为两类:
  • 静态类型的编程语言
  • 动态类型的编程语言
静态类型的语言一般都需要编译,这意味着编译器程序会解析整个代码,并将其转换成汇编语言,然后再生成一个新文件。而这个文件可以由用户手动执行。
另一方面,动态类型的编程语言通常是解释型的,意味着解释器会逐行分析并运行代码。
我们大多数人都喜欢动态类型的语言。比如 Python,不易出错且方便人类理解。但是这种方便性是有代价的,我们付出的代价就是速度。
在本文中,我们就来看一看常见的一些速度非常慢的动态类型编程语言


Perl

 
如果你有使用 UNIX 的经验,那么一定见过 Perl 脚本。大部分的 UNIX 文件都是用 Perl 编写的。
Perl 是 Unix 的脚本语言。这种语言的诞生是为了减轻程序员编写 Shell 程序的负担。它只是将一堆 Shell 命令塞到了一个文件中。
更重要的是,有些任务如果利用 C 语言和其他 Unix 语言编写的话,简直就是噩梦,而 Perl 降低了这些任务的难度。当然,取代 C 语言也会付出代价。
事实证明,Perl 在速度方面确实有所欠缺。
此外,如今找到一位出色的 Perl 程序员的难度,不亚于大海捞针。例如,与 Python 不同,Perl 对实现非常敏感,每个操作符都必须正确地使用,才能创建相对高效的程序。
即使按照最有效的方式实现,Perl 的运行速度仍然落后于其他同等的高级编程语言。然而,如今 Perl 仍在发展,效率的问题也相继得到了解决,特别是 2019 年发布的新版本(又名 Raku)。


PHP

 
PHP 是一种脚本化 Web 开发编程语言,通常用于 Web 应用程序的开发,是 HTML、CSS 和 MySQL 的补充。
许多人认为 PHP 已经过时了。但事实并非如此!
根据 2020 年 StackOverflow 的调查,PHP 依然榜上有名:

然而,由于 PHP 的学习曲线比较平缓,而且易于托管,因此性能方面的表现不佳。
由于缺少即时编译(JIT 编译器),因此 PHP 的运行速度非常慢,而且它还是一种动态类型的语言。幸运的是,在 2020 年 11 月 26 日,PHP 8 推出了一项性能优化功能:内置的 JIT 编译器。内置的 JIT 编译器可以从速度和性能方面,帮助 PHP 逐渐向同类的编程语言靠拢。


Ruby

 
Ruby 的创始人松本行弘曾在 Ruby 社区中说:“Ruby旨在让程序员开心。
Ruby 是一种面向对象的编程语言。一切都可以解释成对象。因此,Ruby 很优雅,而且非常便于使用。只需要轻轻挥动魔法棒,任务就完成了。
然而,从性能来看,Ruby 是一种典型的解释型语言。因为解释型语言需要逐条运行代码,因此与使用编译器的语言相比,它们的速度往往更慢。
为了解决速度的问题,Ruby 引入了全局解释器锁(Global Interpreter Lock,简称 GIL),这意味着该语言一次允许一个线程使用 GIL。
另外,Ruby 还有其他方面的困扰,比如内存消耗过高、垃圾回收缓慢等。


Python

 
万能的 Python 几乎常年占据各类编程语言排行榜的榜首。Python 主要用于数据科学、Web 开发和网络安全等领域。
毋庸置疑,Python 有很多的优点。然而,Python 也有速度的问题。
Python 和 Ruby 都来自同一个家族,由于 GIL 以及解释器的使用,它们的速度都很慢。二者的主要区别在于,前者倾向于 Web 开发,而后者则主要面向数据科学。
但是,Python 拥有强大的库和功能作为后盾。部分库和函数极大地提高了性能,比如 Numpy 模块和内置的 Filter()都是用 C++实现的。这就是为什么 Python 蓬勃发展,超越其他编程语言的原因。


总结

 
虽然速度和性能是实现软件时需要考虑的重要因素,但我们不应该将全部责任都推到编程语言身上。很多时候,造成速度和性能主要问题的根本原因在于,不良的实现和不合理的设计。
参考链接:https://medium.com/better-programming/the-slowest-modern-programming-languages-d29ea2306675




    
☞乐视视频 App 图标改为“欠 122 亿”,网友:我在别家分红包,却在你家随份子!
Linux 下杀毒软件 CPU 占用率为何持续升高?

被法拉第夸、狄更斯为她读诗、英王参加她的成人礼,程序员祖师的人生有多传奇?

点分享
点收藏
点点赞
点在看
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/107412
 
271 次点击