小編給大家分享一下php7、java8、nodejs5與lua5.2的性能有哪些區(qū)別,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)白銀區(qū)免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
簡單比較一下php7和java8的計(jì)算和字符串操作性能。
機(jī)器:osx 10.10 intel corei5 4GB
php7.php:
$b){ ++$a; }else{ $b = $b + 1; } if($a == $b){ $b = $b + 1; } $c = $a * $b + $a / $b - pow($a, 2); $d = substr($s, 0, strpos($s, 'kkb')) . strval($c); } ?>
java8.java:
public class Main { public static void main(String[] args) { long t1 = System.currentTimeMillis(); for(int i=0; i<10000000; i++){ aaa((float)i); } long t2 = System.currentTimeMillis(); System.out.println("java time:" + String.valueOf(t2 - t1) + "ms"); } static void aaa(float i){ float a = i + 1; float b = 2.3f; String s = "abcdefkkbghisdfdfdsfds"; if(a > b){ ++a; }else{ b = b + 1; } if(a == b){ b = b + 1; } float c = (float) (a * b + a / b - Math.pow(a, 2)); String d = s.substring(0, s.indexOf("kkb")) + String.valueOf(c); } }
node5.js:
var t1 = (new Date()).getTime(); for(var i=0; i<10000000; i++){ aaa(i); } var t2 = (new Date()).getTime(); console.log("nodejs time:" + (t2 - t1) + "ms"); function aaa(i){ var a = i + 1; var b = 2.3; var s = "abcdefkkbghisdfdfdsfds"; if(a > b){ ++a; }else{ b = b + 1; } if(a == b){ b = b + 1; } var c = a * b + a / b - Math.pow(a, 2); var d = s.substring(0, s.indexOf("kkb")) + c.toString(); }
lua5.2.lua
function aaa(i) a = i + 1 b = 2.3 s = "abcdefkkbghisdfdfdsfds" if(a > b) then a = a+1 else b = b + 1 end if(a == b) then b = b + 1 end c = a * b + a / b - math.pow(a, 2) d = string.sub(s, 0, string.find(s, "kkb")) .. tostring(c) end t1 = os.clock() for i=0, 10000000, 1 do aaa(i) end t2 = os.clock() print("lua time:" .. (t2 - t1) * 1000 .. "ms")
分別執(zhí)行1000萬次計(jì)算,依次執(zhí)行以下命令:
java -jar java8jar
node node5.js
php php7.php
luajit lua5.2.lua
lua lua5.2.lua
結(jié)果:
結(jié)論:由此可見就計(jì)算性能來說,java8 > nodejs5 > php7 > luajit > lua
java8是php7的5.2倍,nodejs5是php7的1.8倍,php7和luajit相當(dāng)。
說lua是最快的腳本,那是往事了。靜態(tài)語言的計(jì)算性能肯定比動(dòng)態(tài)語言強(qiáng)很多。
對(duì)于密集計(jì)算,java是最好的選擇;考慮到web的性能的瓶頸往往在數(shù)據(jù)庫和IO,nodejs和php都是很好的選擇。我個(gè)人喜歡php,無論從開發(fā)和部署,都比nodejs順心點(diǎn)。
特別注意:如果function aaa(i)中沒有參數(shù)i,那么nodejs是最快的,1000ms就完成了,估計(jì)nodejs對(duì)相同的執(zhí)行結(jié)果進(jìn)行了緩存。有好多人都犯了這個(gè)錯(cuò)誤,測(cè)試下來就認(rèn)為nodejs比java快多了。
看完了這篇文章,相信你對(duì)“php7、java8、nodejs5與lua5.2的性能有哪些區(qū)別”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!