同為動態語言,python的性能為何只有PHP的五分之一?

http://benchmarksgame.alioth.debian.org/u64q/php.html


benchmarksgame 上面的測試基本上都是密集計算的。PHP 和 Python(CPython) 目前都沒有 JIT,PHP 能勝出只能說明底層 VM 性能比 Python 的要好。

實際上 PHP 語言官方開發組從 5.4 時代就一直在優化 VM 的性能。PHP7 版本對底層的數據結構進行了很大的改造,相比 5.6 提升了 1 倍以上的性能。而 Python 3 相比 Python 2 性能上反而是在退步。

密集計算場景,靜態語言和 有 JIT 的動態語言 會有很大的優勢。可以看到 Node.js(基於 V8 引擎) 的測試成績遠超 PHP 和 Python 。前者的計算指令是直接作為 CPU 指令執行的,後者計算實際上是 VM 上的高級指令,實現原理上有很大差異。

不過,各位 PHPer 也別灰心,PHP 官方開發組已經在開發 JIT 特性了,也許下個版本 PHP 就會攜帶 JIT ,到時在密集計算場景下將會和 Node.js 在同一數量級。


另外再說句,PHP、Python、Node.js 都是寫應用軟體的,語言的計算性能沒那麼重要。你的程序如果對性能敏感,C/C++/GO/Rust 這些靜態編程語言才是最好的選擇。


其實 CPython 是 Python 實現裡面最慢的那個。而 PHP7 是 PHP 實現里最快的那個。

別說其它語言了,連 PyPy 和 Jython 都吊打 CPython。


PHP在7的版本上性能是煥然一新,在底層的Zval、Zend Array等方面做了諸多改進,據說後面還要上jit那性能還會更上一層樓。PHP只需悶頭做好自己的事情,不需洋洋得意、驕傲自滿,更不要去跟別的語言大張旗鼓地比論一番,因為這必然會被「黑上加黑」,有些問題其實就是「來者不善」,生生為了搞事情的[doge]

總之,性能只是一方面,不能因此而自滿。謙虛謹慎,虛心請教,踏踏實實,勤勤懇懇,這才是一個PHPer的優良品德。


Python從一開始出來就沒把性能作為自己關註解決的問題,Python一直的理念就是榨乾機器的性能,來讓編程變的更簡單和有趣。

話說真正把編程變得簡單和有趣這兩大目標,我反而認為php做的更好。任何一個沒計算機基礎的人,都可以拿著php分分鐘在網頁上輸出一個helloword,極大增強學習信心,Python或者其它任何語言恐怕都做不到這一點。


用 CPU 時間換人生的時間。

Life is short, CPU is cheap.


看了回答,一堆人為了保 python 甚至不惜於說 php 速度太快了。

PHP 快個 P 呀?

下面實力打臉:http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=phplang2=node

php 對比 Node.js 有來有回,整體還是 Node.js 性能更高點,有些項目 php 被 Node.js 吊打

python慢就是事實,不服再看看 python 和 Node.js 的對比。python 完敗。

http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=nodelang2=python3

聲明:沒必要跪舔 python,python 性能確實不怎麼樣,這是事實。但是 python 作為膠水,調 c/c++還是很方便的,所以才有了現在機器學習庫一般都提供 python 介面。


其實不是Python慢,而是PHP太快了.

就像你不能說科比差,只是喬丹太厲害了罷了.

測試還提供了跟Ruby的對比,Ruby同樣被PHP吊打,而且更慘.

http://benchmarksgame.alioth.debian.org/u64q/php.html

Ubuntu 14.04 (i5-3230M)

HHVM 3.18 vs PHP 7.1 壓力測試:

time hhvm php-src/Zend/bench.php 耗時 0.882s

time php php-src/Zend/bench.php 耗時 0.961s

time hhvm php-src/Zend/micro_bench.php 耗時 4.611s

time php php-src/Zend/micro_bench.php 耗時 3.934s

time hhvm php-src/ext/hash/bench.php 耗時 13.635s

time php php-src/ext/hash/bench.php 耗時 15.134s

現在的情況就是,就算有JIT的HHVM,在沒有JIT的PHP7面前也占不到什麼便宜.

等PHP7後期正式加入JIT,Python跟PHP的性能差距會進一步擴大.

要怪只能怪Python界為什麼沒有一個Python"鳥哥".

你們再怎麼黑,也黑不出一個Python"鳥哥",真是失敗,呵呵.

呵呵,有些人見Python性能鬥不過PHP7,就扯PHP5性能不行.

我要告訴你,就算是PHP5,也分分鐘把Python干趴下,而且還不用最新的5.6,就用5.4來PK.

找2到100000內的素數:
PHP 5.4 耗時 630 ms
Python 2.7 耗時 1164 ms
Python 3.4 耗時 1419 ms

代碼如下:

PHP:
function isprime($num) {
$count = (int) sqrt($num);
while ($count &> 1) {
if ($num % $count == 0) {
return false;
}
$count--;
}
return true;
}
$start = microtime(true);
for ($i = 2; $i &< 100000; $i++) { isprime($i); } echo (microtime(true) - $start) * 1000 ." "; Python: import time import math def isprime(num): count = int(math.sqrt(num)) while (count &> 1):
if (num % count == 0):
return 0
count -= 1
return 1

start = time.time() * 1000
for i in range(2, 100000):
isprime(i)
end = time.time() * 1000
print(str(end - start))

下面這局直接無視Python,直接拿Google牛逼哄哄的V8驅動的Node來跟PHP 5.4比.

生成一個包含100萬個元素的關聯數組(字典/映射),PHP7的耗時僅為Node7的1/3,就連PHP5.4都比Node7要快.測試內容主要包含時間戳獲取,字元串拼接,關聯數組生成這幾個開發中經常用到的操作.

截圖地址:
https://static.oschina.net/uploads/space/2017/0507/114545_l2Gp_561214.png


因為php不牛逼!所以php只能解決實際問題!

雖然php一直被黑!

但是80%網站都在用php

如果這樣的佔有率!

再不行!就沒前途了!


看了一些評論,何必非得抓著某個點然後得出自己想得出的結論:

xxx語言比xxx語言牛逼…

各有各的適用場景,要追求性能大家都用c算了,真到了cpu密集型的場景,python也不是沒有解決方案,何況python本來也就不是針對這一場景的


哇。php好牛逼,部署比Python簡單,既然還比我Python快。這麼快的語言,我再也不用Python跑深度學習了。 (#誤


現在機器性能上來了,越來越是注重開發效率。有些東西已經不重要了


因為"php是世界上最好的語言"


快別說話了

快跑~

悄悄告訴你, 黑PHP是政治正確

而且你這又帶上了最NB的語言python

完了

再不跑 就來不及了~


php 與node.js 也是互有勝負謝謝,並不存在吊打,可能有些測的是同步對非同步,所以相差大一點


不要用一個指標去評價某種編程語言,每一種用戶夠多的語言都有他的優勢和特點。爭論語言優劣毫無意義。c,c++夠快了吧,但是你知道野指針嗎?


我把這個拿給python看,我說PHP是世界上最好的語言,python當時就急了,跳起來就打我膝蓋:你再說一遍,我把你摁鍵盤上。呵呵,就憑你?PHP是世界上最%#^+£&<#]?...


快有個卵用,直接寫彙編比這快而且程序還小,再不濟c c++也行,人家就不是為快而生的。速度問題是最不需要考慮的問題,這不是語言問題。


因為php7已經發生質變,變快了。話說以前的php你跑一個看看。沒必要說哪種語言是世界上最好的語言因為這樣就讓你的眼界和主觀發生偏差了。再說一句php7真的是優化和改變的讓人耳目一新。ps我是寫python的


推薦閱讀:

有哪些適合高並發、高性能網站的 PHP 框架推薦?
哪個PHP 框架比較好?
如何給會員群發廣告郵件而又不被當垃圾郵件?
swoole的應用場景?
為什麼使用正則表達式會慢?

TAG:編程語言 | Python | PHP |