Cet article présente des informations pertinentes sur la comparaison des performances de golang, python, php, c, c, java et Nodejs. Les amis qui en ont besoin peuvent s'y référer <.>
Lorsque je travaillais sur PHP/C/Go/Py, j'ai soudain eu l'idée de faire une simple comparaison des performances des récentslangages de programmation grand public Quant à savoir comment faire. comparez, je dois encore utiliser l'algorithme magique de Fibonacci. C’est peut-être plus couramment utilisé ou amusant.
Bon, parler ne coûte rien, montre-moi ton code ! Ouvrez ton Mac, clique sur Clion et commence à coder ! 1. Pourquoi Go est-il le premier Parce que je l'utilise personnellement récemment et je me sens très bienpackage main import "fmt" func main(){ fmt.Println(fibonacci(34)) } func fibonacci(i int) int{ if(i<2){ return i; } return fibonacci(i-2) + fibonacci(i-1); }
qiangjian@localhost:/works/learnCPP$ go version && time go build fib.go && time ./fibgo version go1.7.5 darwin/amd64 real 0m0.206suser 0m0.165ssys 0m0.059s real 0m0.052suser 0m0.045ssys 0m0.004s
qiangjian@localhost:/works/learnCPP$ go18 version && time go18 build fib.go && time ./fibgo version go1.8 darwin/amd64 real 0m0.204suser 0m0.153ssys 0m0.062s real 0m0.051suser 0m0.045ssys 0m0.003s
def fibonacci(i): if i<2: return i return fibonacci(i-2) + fibonacci(i-1) print(fibonacci(34))
qiangjian@localhost:/works/learnCPP$ python2 -V && time python2 ./fib.py Python 2.7.13 5702887 real 0m2.651s user 0m2.594s sys 0m0.027s
qiangjian@localhost:/works/learnCPP$ python3 -V && time python3 ./fib.py Python 3.5.1 real 0m3.110s user 0m2.982s sys 0m0.026s
<?php function fibonacci($i){ if($i<2) return $i; return fibonacci($i-2) + fibonacci($i-1); } echo fibonacci(34);
qiangjian@localhost:/works/learnCPP$ php54 -v && time php54 fib.php PHP 5.4.43 (cli) (built: Dec 21 2016 12:01:59) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies real 0m2.288s user 0m2.248s sys 0m0.021s
qiangjian@localhost:/works/learnCPP$ php -v && time php fib.php PHP 5.6.28 (cli) (built: Dec 6 2016 12:38:54) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies real 0m2.307s user 0m2.278s sys 0m0.017s
qiangjian@localhost:/works/learnCPP$ php -v && time php fib.php PHP 7.1.2 (cli) (built: Feb 17 2017 10:52:17) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies 5702887 real 0m0.815s user 0m0.780s sys 0m0.015s
#include <iostream> constexpr int fibonacci(const int i){ if(i<2) return i; return fibonacci(i-2) + fibonacci(i-1); } int main() { fibonacci(34); return 0; }
qiangjian@localhost:/works/learnCPP$ time g++-6 -o a.bin main.cpp && time ./a.bin real 0m0.378s user 0m0.254s sys 0m0.104s real 0m0.050s user 0m0.043s sys 0m0.002s
qiangjian@localhost:/works/learnCPP$ time g++-6 -O2 -o a.bin main.cpp && time ./a.bin real 0m0.874s user 0m0.344s sys 0m0.180s real 0m0.034s user 0m0.019s sys 0m0.004s
5. C a également écrit un
#include <stdio.h> int fibonacci(int i){ if(i<2) return i; return fibonacci(i-2) + fibonacci(i-1); } int main(){ printf("%d",fibonacci(34)); }
qiangjian@localhost:/works/learnCPP$ time gcc-6 -o c.bin fib.c && time ./c.bin real 0m0.341s user 0m0.063s sys 0m0.101s real 0m0.049s user 0m0.044s sys 0m0.002s
qiangjian@localhost:/works/learnCPP$ time gcc-6 -O2 -o c.bin fib.c && time ./c.bin real 0m0.143s user 0m0.065s sys 0m0.034s real 0m0.034s user 0m0.028s sys 0m0.002s
6. Java est ce que j'ai le moins envie d'écrire Bien qu'il soit très populaire, il semble trop gonflé
class Fib{ public static void main(String[] args){ System.out.println(fibonacci(34)); } static int fibonacci( int i){ if(i<2) return i; return fibonacci(i-2) + fibonacci(i-1); } }
qiangjian@localhost:/works/learnCPP$ java -version && time javac Fib.java && time java Fib java version "1.8.0_25" Java(TM) SE Runtime Environment (build 1.8.0_25-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode) real 0m0.952s user 0m1.302s sys 0m0.144s real 0m0.150s user 0m0.123s sys 0m0.025s
7. Bien sûr, le dernier à apparaître est le toujours populaire
javascript, non, pour être précis, c'est Nodejs (cette chose n'a rien à voir avec java)
function fibonacci(i){ if(i<2) return i; return fibonacci(i-2) + fibonacci(i-1); } console.log(fibonacci(34))
qiangjian@localhost:/works/learnCPP$ node -v && time node fib.js v6.10.0 real 0m0.332s user 0m0.161s sys 0m0.062s
omium et à la communauté open source. Si Nodejs fonctionne vraiment de manière stable, il ne sera peut-être pas vraiment capable d'unifier le "monde des programmes". Bien sûr, je ne fais que parler, ne le prenez pas trop au sérieux.
Prenons une photo :
Résumé :
J'ai l'impression que chaque langue a des usages différents, et la performance n'est qu'un indicateur unique . Ce que j'apprécie le plus, c'est : la lisibilité, la maintenabilité, la portabilité, la robustesse, l'évolutivité, puis les performances. De plus, le matériel moderne est de plus en plus puissant. Les téléphones portables sont souvent équipés de 8G, les CPU ont rattrapé les CPU des PC il y a 5 ans et les SSD sont de plus en plus populaires... Je suis plus optimiste à propos de Golang/php/python, et je fais également attention au C moderne, comme 14 et 17. Quant à rust,
swift, java, scala, oubliez ça, cela dépend principalement des besoins personnels liés à la pile technologique de l’entreprise. Ha ha ! Écrivons ceci d’abord !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!