Heim > Artikel > Backend-Entwicklung > NodeJs- und PHP-Benchmark
Dieser Benchmark-Test dient lediglich dazu, den Zeitverlust von Knoten und PHP bei der Blasensortierung zu messen. Die Grundidee besteht darin, den Durchschnittswert nach jedem Vorgang zu berechnen, der dem Blasensortierungsalgorithmus 100 Mal entnommen wird , und der Testcode wie folgt:
Code
JavaScript:
function sort(arr){ var n=arr.length; //获取数组的长度,即有n个数在排序 var temp=null; //定义一个临时变量,交换数据用 for(var i=0; i<n-1; i++){ //外层循环n-1次 for(var j=0; j<n-1-i; j++){ //内层每次循环n-1-i次,每次循环完,都能从剩下的数当中找出一个最大的放在n-1-i的位置 if(arr[j]>arr[j+1]){ //如果a[j]>a[j+1]则交换位置 temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } return arr; //返回排好序的数组 } const array = [49, 38, 65, 97, 76, 13, 27,49, 38, 65, 97, 76, 13, 27]; const startTime = new Date(); for (let i = 0; i <= 99; i++) { const arr = sort(array); } console.log((new Date() - startTime) / 1000 / 100);
PHP:
function bubble_sort($array) { $count = count($array); if ($count <= 0) return false; for ($i = 0; $i < $count; $i++) { for ($j = $count - 1; $j > $i; $j--) { //如果后一个元素小于前一个,则调换位置 if ($array[$j] < $array[$j - 1]) { $tmp = $array[$j]; $array[$j] = $array[$j - 1]; $array[$j - 1] = $tmp; } } } return $array; } $array = [49, 38, 65, 97, 76, 13, 27,49, 38, 65, 97, 76, 13, 27]; $startTime = microtime(true); for ($i = 0; $i <= 99; $i++) { $arr = bubble_sort($array); } echo number_format((microtime(true) - $startTime) / 100, 10);
Hinweis: Um PHP5 zu testen, wird der hervorgehobene Syntaxtyp von PHP7 nicht verwendet
Testergebnisse
Wie in der Abbildung gezeigt:
PHP5.6
Node7.9:
PHP7.1
Fazit
Die Ergebnisse der drei Messungen sind:
Testmaschine
Den Ergebnissen dieses Tests nach zu urteilen, ist PHP7.1 > PHP5.9 >
Das obige ist der detaillierte Inhalt vonNodeJs- und PHP-Benchmark. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!