IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Si Java est considéré par plusieurs professionnels comme étant lent et lourd
Le framework web le plus rapide selon TechEmpower est écrit en Java

Le , par Victor Vincent

408PARTAGES

6  9 
TechEmpower a publié les résultats d’un test de performance de cent soixante-deux plateformes d’applications web, de framework et de microframeworks écrits dans différents langages de programmation, dont Java, C++, Go, Python ou encore Ruby. Ces résultats mettent en évidence la suprématie de Java par rapport aux autres langages utilisés pour écrire les différentes plateformes en termes de rapidité. En effet, d’après les résultats de TechEmpower, le framework rapidoid écrit en Java affiche une performance de 100 % dans les résultats du test de performance en termes de rapidité, contre 99,6 % pour le framework cpoll_cppsp écrit en C++ ou encore 89,9 % pour le framework fasthttp_postgresql écrit avec le langage Go. La figure suivante est un extrait du résultat du test de performance publié par TechEmpower.


Java est souvent présenté par certains programmeurs web et autres experts du génie logiciel comme étant un langage lent et assez lourd par rapport aux autres langages du web. Cependant, ces résultats du test de performance de TechEmpower viennent prouver le contraire. Les lenteurs de Java sur certaines applications ne sont pas forcément dues à un défaut de performance du langage lui-même, mais des fois parce que les bonnes pratiques de programmation ne sont pas respectées par les développeurs, affirme un expert en génie logiciel. Selon lui, ceux qui prétendent que Java est langage lent et lourd se basent sur des considérations des années quatre-vingt-dix pour juger le langage. Il ajoute que le langage Java moderne n’a rien à envier aux autres langages de programmation en termes de rapidité.

Source : TechEmpower

Et vous ?

Que pensez-vous de ce test de performance de TechEmpower ?

Voir aussi

le forum Langages de programmation

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Matthieu Vergne
Expert éminent https://www.developpez.com
Le 26/03/2016 à 19:05
Oh là, wait, c'est quoi ces chiffres ? Il 'agit pas juste de dire "oh y'a un framework en Java qui arrive N°1 dans une table" et d'en faire un article. Faut creuser, sinon c'est pas la peine : j'arrive pas à trouver de description des critères utilisés, donc ça veut dire quoi tout ça ? Quand je parcours les tables, si j'ai bien compris, ils ont fait des requêtes pour fournir une page "plaintext"... Il est où l'intérêt du framework web si c'est pour fournir un fichier texte sur lequel il n'y a aucun traitement à faire ? Qui plus est, le benchmark semble être fait en demandant, pour chaque framework, un fichier de 256/1024/4096/16384 octets, de regarder combien il en fourni par seconde, et de prendre le meilleur résultat... donc on compare des résultats sur des fichiers de tailles différentes dans cette liste, autant dire que ça n'a pas beaucoup de sens. Qui plus est, les résultats peuvent changer pas mal pour certains frameworks, alors que pour d'autres ça reste relativement constant (comme pour le n°1), cette constance venant confirmer qu'on traite là des fichiers dont finalement le framework n'a rien à faire.

Donc j'ai beau être un grand amateur de Java, faut rester honnête : cette analyse ne confirme absolument pas ce que l'article affirme, autrement faut me montrer où je me plante en me donnant les explications du benchmark.

Et en regardant bien, il semble qu'il y ait aussi des fonctionnalités ignorées sous prétexte que d'autres n'en on pas... donc question valeur pratique, tu repasseras.
https://www.techempower.com/benchmar...mp;test=update

Edit: En regardant bien, il semble que ce ne soit pas des octets mais des accès concurrents. Néanmoins on reste dans le vague de manière générale et sur du plaintext toujours. Si on regarde le traitement JSON, le n°1 devient n°2 avec une différence significative, le premier étant fait en C.
7  0 
Avatar de
https://www.developpez.com
Le 26/03/2016 à 20:50
Citation Envoyé par Victor Vincent Voir le message
Si Java est considéré par plusieurs professionnels comme étant ...
Traduction : on a aucune étude sérieuse à ce sujet.

Citation Envoyé par Victor Vincent Voir le message

le framework web le plus rapide au monde est écrit en Java selon un test de performance de TechEmpower
Effectivement, un framework java arrive en premier sur 1 test de performance. Et sur les 5 autres tests de performance de "l'étude", ce sont des frameworks en d'autres langages.
6  0 
Avatar de ValCapri
Membre habitué https://www.developpez.com
Le 26/03/2016 à 19:27
Le test où rapidoid se retrouve 1er est basé sur un simple Hello World !
Les autres tests semblent un peu plus réaliste et Java n'arrive pas toujours 1er.

J'adore Java, Java peut-être très performant, lorsqu'il est utilisé avec des petits frameworks comme Vert.x, dropwizard ou autre.
Pour du front, NodeJS avec d'autres framework excel aussi.
Python et Ruby avec leurs frameworks peuvent être très bon, tout comme Go et Rust dans tout ce qui est concurrence et distribué.

Chaque langage/plateforme/framework a ses forces et faiblesses, le tout est de les connaitre.
C'est pour cela que je trouve que la "stratégie" micro-service très bonne.
Je trouve juste dommage qu'on nous parle d'expert en langage X, et que certaine entreprise oblige d'utiliser la stack Y.
Pour moi, les développeurs sont largement capables de choisir leurs stacks, leurs environnements et de le maitriser avec un peu de pratique.
Il faut savoir tester de nouvelles choses, itérer, et déployer. Et si il est possible d'avoir quelqu'un qui connait la stack que l'on est entrain d'utiliser => pair programming, ou alors de s'y former => R&D.

Java peut-être très performant, Cassandra et ActiveMQ sont des bons exemples.
Les langages fondé sur la JVM fonctionne très bien aussi avec des projets très performant comme Kafka, Spark, Akka, Play.
4  0 
Avatar de Ev3r10st
Membre habitué https://www.developpez.com
Le 26/03/2016 à 23:41
Le plus lent avec java c'est surtout le lancement de la JVM.
Après clairement en exécution c'est super rapide java.

Après "le framework le plus rapide du monde" c'est un titre aguichant, mais il y a quoi derrière ?
Je veux dire, par exemple avec django, en une demi journée je te fais une application web qui fait quelque chose, et avec nginx en frontal ça marche bien.

Si tu as une page instantanément mais qu'il te faut 3 ans pour créer une application, quel intérêt?

En plus rapidoid ne supporte même pas les websockets. On est en 2016 les mecs hein?!

Bref, je vous le laisse bien volontiers votre framework "le plus rapide du monde!".
4  0 
Avatar de Pierre Louis Chevalier
Expert éminent sénior https://www.developpez.com
Le 28/03/2016 à 4:11
Je croyais que les débats ça servait aussi à démonter les trucs bidons, non ?
Si tu ne fait que des news simplistes sans risques ni doutes ou tu affiche 2+2 = 4 ou est le débat ?
4  1 
Avatar de _skip
Expert éminent https://www.developpez.com
Le 28/03/2016 à 9:27
J'ai regardé ces tests à ses débuts il y a plusieurs années et il y a une chose qui m'avait frappée, je sais pas si elle est encore d'actualité mais je la précise quand même:

Certains benchs sur des frameworks full stack (grail, play, ninja) comprenaient des accès à la DB faits avec des outils tels que hibernate, JPA ou Ebean, avaient aussi des mécanismes avancés comme le mapping auto des paramètres de requête dans les controllers suivant le Content-Type etc... et ceci était comparé à des autres frameworks qui étaient à peine plus que de la Servlet avec du JDBC bare metal.
Donc au bout d'un moment la comparaison a plus beaucoup de sens si on compare des mastodontes full-stack avec des trucs très bas niveau qui font 50x fois moins de choses? C'est comme si j'allais jeter un <?php echo 'hello world' ?> dans un fichier à la racine d'un serveur et conclure que symphony est pas performant à côté?

Citation Envoyé par LSMetag

Par contre, Java en lui même reste en retrait question sécurité. Donc il demande plus de précautions au niveau du déploiement et de l'analyse de code.
Je pourrais savoir sur quoi on se base pour arriver à cette conclusion? Parce que j'ai l'impression que les gens qui tiennent ce genre de propos mélangent en fait les applets ou les plugins java pour navigateur qui sont en fait des technologies d'exécution desktop, avec du java web ou tout se passe côté serveur ce qui n'a au final pas grand chose à voir.
3  0 
Avatar de Laurent Simon
Membre du Club https://www.developpez.com
Le 08/04/2016 à 17:34
Citation Envoyé par youtpout978 Voir le message
Je pensais qu'on disait que Java côté serveur était lourd et lent à cause de la stack d'outil qu'on empilait côté serveur.
Oui, c'est tout à fait vrai, mais uniquement quand on ne sait pas s'en servir. Comme avec beaucoup d'autre langages d'ailleurs.

Empiler les frameworks est le parfait exemple de ce qu'il faut faire pour s'assurer que ce soit bien lent et que ça ne puisse pas monter en charge. Beaucoup le font. Mais ça, on est absolument pas obligé!

Quelque soit le langage, grosso-modo, les performances et la capacité de montée en charge seront toujours inversement proportionnelles à la profondeur moyenne de la stack pendant le déroulement du programme.

Attention, je ne dis pas qu'il ne faut utiliser de frameworks. Il faut juste le faire à bon escient. Toujours s'assurer que l'usage d'un framework est bien un gain réel avec un coût acceptable pour l'application. En aucun cas ça ne doit être juste un confort, une facilité ou pire, une habitude, pour le développeur.
2  0 
Avatar de gbegreg
Membre expert https://www.developpez.com
Le 26/03/2016 à 22:25
Je suis du même avis que les remarques précédentes : d'une étude dont on ne sait pas grand chose, qui comporte cependant plusieurs tests mais l'article cible qu'un seul des tests (le plus simple en plus de type "Hello World" et en tire une conclusion hâtive...

Une petite remarque pour ValCapri : attention à l'orthographe car ça peut changer la signification...
Citation Envoyé par ValCapri Voir le message
Pour du front, NodeJS avec d'autres framework excel aussi.
=> il est possible de faire des choses avec Excel mais je pense que tu voulais dire que "NodeJS avec d'autres frameworks excelle aussi"
1  0 
Avatar de Gecko
Membre éprouvé https://www.developpez.com
Le 26/03/2016 à 22:41
Question objectivité on repassera...
1  0 
Avatar de _skip
Expert éminent https://www.developpez.com
Le 29/03/2016 à 12:38
Citation Envoyé par LSMetag Voir le message
Je parle en effet plutôt du Desktop, mais "connecté" via par exemple des services web ou des communications autres. Dans ces cas-là, on peut véroler tout un éco-système. En tout cas, il y a des raisons à la quasi interdiction de Java par les navigateurs internet et au déferlement de news de failles de sécurité depuis la reprise par Oracle.
Bien sûr mais je doute que ce soit un véritable problème hors des navigateurs. Dans un environnement desktop, c'est beaucoup une histoire de confiance, tu lances pas un programme en lequel tu n'as pas confiance, et encore moins s'il te demande à priori sans raisons des privilèges élevés, mais ce n'est pas propre à java. Sur le plan de l'accès à des services distants, tu disposes des mêmes moyens que n'importe quel language pour sécuriser les échanges, c'est plus une histoire des protocoles de communications utilisés mais java ne te force pas d'utiliser des choses non-sécurisées.

En revanche, à compter du moment où java propose un plugin d'exécution pour navigateur disposant d'un mode "sandbox" et que malgré cela des applications arrivent à sortir du bac à sable pour intervenir sur le système de l'utilisateur, là c'est clair c'est un sacré problème. Ces technologies sont vieillissantes, elles sont apparues dans un contexte ou on avait du activeX, du flash, même des espèces de sous-produits de toute sorte à l'age de pierre des RIA. Et elles se sont certainement très mal adaptées. Mais je reste quand même convaincu que les problèmes de sécurités de java ne sont pas liés à java, mais aux applets ou éventuellement à JWS qui sont sans doute qu'un infime pourcentage des développements java actuels.
1  0