自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

4種速度最慢的動(dòng)態(tài)編程語(yǔ)言,你一定用過(guò)

開(kāi)發(fā) 后端
大多數(shù)人喜歡動(dòng)態(tài)類型語(yǔ)言。諸如Python之類的不易出錯(cuò)且易于人工解釋的語(yǔ)言。但這是有代價(jià)的,那就是要犧牲運(yùn)行速度。在本文中,我們將列出4種相對(duì)最慢的常見(jiàn)動(dòng)態(tài)類型編程語(yǔ)言。

編程語(yǔ)言已經(jīng)存在很多年,每種語(yǔ)言都是為了滿足特定的需要而構(gòu)建的。

到今天為止,全世界大約有700種編程語(yǔ)言?,F(xiàn)在僅剩250種語(yǔ)言能存續(xù)下來(lái),其余的基本上已經(jīng)被編程社區(qū)拋棄了。

對(duì)于程序員來(lái)說(shuō),性能一直是一個(gè)必須考慮的問(wèn)題。在過(guò)去,程序的運(yùn)行時(shí)間可以用天數(shù)來(lái)衡量,而現(xiàn)在,歸功于科技的進(jìn)步,僅需幾秒鐘即可完成運(yùn)行。

計(jì)算機(jī)進(jìn)化的速度遵循摩爾定律:

摩爾定律

在電子學(xué)中,速度和性能轉(zhuǎn)化為一個(gè)特定芯片可以擁有的晶體管數(shù)量。根據(jù)摩爾定律,這個(gè)數(shù)字每隔兩年就會(huì)往上翻一番。這就是為什么你的手機(jī)比1990年代的房間大小的超級(jí)計(jì)算機(jī)快得多。

回到計(jì)算機(jī)科學(xué),速度快的代碼和速度快的電腦是有區(qū)別的。速度慢的程序和速度慢的電腦也是有區(qū)別的。雖然我們很多人無(wú)法影響計(jì)算機(jī)硬件的運(yùn)行速度,但是代碼的快慢卻是我們可以控制的。

在開(kāi)發(fā)時(shí),我們往往都要考慮一個(gè)因素,那就是語(yǔ)言期望。每種語(yǔ)言的實(shí)現(xiàn)方式都不同,因此每種語(yǔ)言都有各自的優(yōu)點(diǎn),可能很少人會(huì)把程序的運(yùn)行速度納入語(yǔ)言的編程優(yōu)點(diǎn)之中。

如果你正在做游戲類的項(xiàng)目,或者是需要繁重的數(shù)學(xué)計(jì)算等高要求的任務(wù),最好不要用運(yùn)行速度太慢的編程語(yǔ)言。

一般來(lái)說(shuō),編程語(yǔ)言有兩種類型:

  • 靜態(tài)類型編程語(yǔ)言
  • 動(dòng)態(tài)類型編程語(yǔ)言

靜態(tài)類型語(yǔ)言通常是編譯的,意思就是編譯器的程序會(huì)解析并將整個(gè)類似英語(yǔ)的代碼轉(zhuǎn)換為匯編語(yǔ)言,并生成一個(gè)新文件,這個(gè)文件可以由用戶手動(dòng)運(yùn)行。

動(dòng)態(tài)類型語(yǔ)言是指在運(yùn)行期間才去做數(shù)據(jù)類型檢查的語(yǔ)言,也就是說(shuō),在用動(dòng)態(tài)類型的語(yǔ)言編程時(shí),永遠(yuǎn)也不用給任何變量指定數(shù)據(jù)類型,該語(yǔ)言會(huì)在你第一次賦值給變量時(shí),在內(nèi)部將數(shù)據(jù)類型記錄下來(lái)。

大多數(shù)人喜歡動(dòng)態(tài)類型語(yǔ)言。諸如Python之類的不易出錯(cuò)且易于人工解釋的語(yǔ)言。但這是有代價(jià)的,那就是要犧牲運(yùn)行速度。

在本文中,我們將列出4種相對(duì)最慢的常見(jiàn)動(dòng)態(tài)類型編程語(yǔ)言。

1. Perl

如果你以前用過(guò) UNIX,那么一定見(jiàn)過(guò) Perl 腳本。因?yàn)榇蠖鄶?shù) UNIX 文件都是 Perl 格式。

Perl 是一種 Unix 腳本語(yǔ)言。它是為了減輕程序員不得不忍受編碼冗長(zhǎng)的 Shell 程序的困難而創(chuàng)建的,Perl 就是把很多 Shell 命令塞進(jìn)了一個(gè)文件中。

更重要的是,Perl 還可以用來(lái)完成在 C 和其他 Unix 語(yǔ)言中難以完成的任務(wù)。

Perl 在運(yùn)行速度方面的確令人頭疼。

另外,現(xiàn)在想找到一個(gè)優(yōu)秀的 Perl 程序員就像試圖大海撈針。這是因?yàn)?,與 Python 不同,Perl 對(duì)實(shí)現(xiàn)非常敏感,每個(gè)操作符都必須在合適的位置上才能擁有一個(gè)相對(duì)高效的程序。

即使有最高效的實(shí)現(xiàn),Perl 仍然落后于其他的高級(jí)編程語(yǔ)言。但是,在2019年,一個(gè)版本名為 Raku 的 Perl 6發(fā)布之后,Perl 的速度問(wèn)題正在一個(gè)又一個(gè)被解決。

2. PHP

[[379304]]

PHP 是一種腳本 Web 開(kāi)發(fā)編程語(yǔ)言,通常在網(wǎng)站部署中補(bǔ)充 HTML、CSS 和 MySQL。

許多人認(rèn)為 PHP 已經(jīng)過(guò)時(shí)了,但事實(shí)并非如此。

有研究表示:在我們知道服務(wù)器端編程語(yǔ)言的所有網(wǎng)站中,有79.0%的網(wǎng)站都使用了 PHP。

除此之外,在關(guān)于編程、腳本和標(biāo)記語(yǔ)言的“ 2020 StackOverflow ”調(diào)查報(bào)告中,展示了 PHP 依然是一種非?;钴S的語(yǔ)言,排名在 C++和 Typescript 之上:

但是,由于 PHP 的學(xué)習(xí)曲線是漸進(jìn)的,而且托管成本低,因此在性能方面會(huì)有所缺失。

PHP 的速度非常慢,因?yàn)槿鄙賹?shí)時(shí)編譯 (JIT 編譯器),而且它是一種動(dòng)態(tài)類型語(yǔ)言。很幸運(yùn)的是,在 2020 年 11 月 26 日,PHP 8 推出了一個(gè)性能優(yōu)化功能:內(nèi)置的 JIT 編譯器。

內(nèi)置的 JIT 編譯器幫助 PHP 在速度和性能方面接近其他同類編程語(yǔ)言。

3. Ruby

[[379305]]

Ruby的官方作者 Yukihiro Matsumoto 曾說(shuō):

Ruby 旨在讓程序員滿意。

Ruby 是一種面向?qū)ο蟮木幊陶Z(yǔ)言,一切都可以被解釋為對(duì)象。這使得它成為一個(gè)容易使用的工具。只需要?jiǎng)觿?dòng)手指,任務(wù)就能完成。

但是,在性能方面,Ruby 是一種典型的解釋語(yǔ)言。由于解釋語(yǔ)言是逐句運(yùn)行代碼語(yǔ)句,因此與使用編譯器的語(yǔ)言相比,它們往往比較慢。

Ruby 的速度在全局解釋器鎖 (GIL)中再次被砍,因?yàn)樵撜Z(yǔ)言每次只能允許使用一個(gè)線程使用 GIL。

最后,Ruby 的速度還受到高內(nèi)存消耗和垃圾收集慢的影響。

4. Python

在很多編程語(yǔ)言的排行榜中,Python 排名第一,成為最受歡迎的編程語(yǔ)言。它大量用于數(shù)據(jù)科學(xué)、Web 開(kāi)發(fā)和人工智能等。

這里不是夸大 Python,因?yàn)樗膬?yōu)點(diǎn)多于缺點(diǎn)。但就目前情況來(lái)說(shuō),Python 的速度依然是個(gè)問(wèn)題。

Python 和 Ruby 是相同屬性的編程語(yǔ)言。由于 GIL 和使用解釋程,兩者速度都很慢。它們的主要區(qū)別在于前者以數(shù)據(jù)科學(xué)為主,而后者更傾向于 Web 開(kāi)發(fā)。

但是,Python 有很多強(qiáng)大的庫(kù)和功能支持。其中一些庫(kù)和功能,如 Numpy 模塊和 Filter() 內(nèi)置函數(shù),可以在C++中實(shí)現(xiàn),從而在性能方面得到了顯著的提升。這就是為什么Python現(xiàn)在正在迅速超越其他編程語(yǔ)言的原因。

最后

雖然在軟件實(shí)現(xiàn)方面,速度和性能是需要考慮的重要因素,但不應(yīng)將責(zé)任僅僅歸咎于編程語(yǔ)言。

實(shí)際上,造成速度和性能問(wèn)題的根本原因是糟糕的程序?qū)崿F(xiàn)和代碼設(shè)計(jì)。

盡管動(dòng)態(tài)類型語(yǔ)言的速度很慢,但它們提供了很好的編程體驗(yàn),并提高了工作效率。所以,很多事情都有兩面性,編程語(yǔ)言也是如此。

 

責(zé)任編輯:趙寧寧 來(lái)源: 今日頭條
相關(guān)推薦

2021-01-28 23:40:58

編程語(yǔ)言PythonPerl

2022-12-26 09:16:45

Guava架構(gòu)模型

2022-07-20 07:29:52

Java

2021-02-26 09:04:22

數(shù)組ArrayListHashMap

2013-03-12 14:07:06

Java編程

2020-06-22 07:55:31

編程語(yǔ)言

2022-06-08 21:08:22

微信朋友圈

2015-08-06 13:30:56

商鋪線上

2021-01-14 10:38:41

Java枚舉工具

2020-04-27 10:34:23

HTTPDNSDNS網(wǎng)絡(luò)協(xié)議

2020-07-10 10:48:51

編程語(yǔ)言JavaPython

2020-05-26 12:32:30

Python模板語(yǔ)言編程語(yǔ)言

2020-05-27 09:23:29

Python模板語(yǔ)言

2018-08-21 13:50:05

編程語(yǔ)言JavaPython

2020-07-29 07:37:20

Git 修復(fù)項(xiàng)目

2019-11-21 10:59:16

IPv4IPv6網(wǎng)絡(luò)

2021-02-17 23:49:56

編程語(yǔ)言PYPLPerl

2018-02-08 09:11:25

Linux命令rm

2015-10-21 11:09:08

Xcode7調(diào)試神技

2010-01-25 15:09:17

C++語(yǔ)言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)