Java is Slow Revisited Java est lent Revisited
There is a minor-war going on in Sun Alumni mailing list and elsewhere where the common misconception: “Java is slow” is surfacing again and again, much to the dismay of knowledgeable Java developers who have known for ages that Java is fast even compared to C++ and has been so for several years. Il est un mineur-guerre de Sun sur la liste des anciens et ailleurs où le malentendu: "Java est lent" revêtement est encore et encore, à la grande consternation des connaissances développeurs Java qui ont connu depuis des lustres que Java est rapide même si on les compare à C + + et a été le cas pour plusieurs années. All this re-surfaced because Sun decided to Tout cela re-fait surface parce que Sun a décidé de change its ticker symbol to JAVA modifier son symbole boursier à Java (previously it was SUNW). (auparavant il était SUNW). All of this is terribly frustrating to Java developers who take pride in Java and are well aware of its capabilities because they leverage it every day. Tout cela est terriblement frustrant pour les développeurs Java qui sont fiers de Java et sont bien conscients de ses capacités, car ils levier tous les jours. So let’s rest this myth to rest once and for all, shall we? Alors, reste à ce mythe une fois pour toutes, allons-nous?
Myth 1: Java is Interpreted language and so it must be slow Mythe 1: Java est langage interprété, et il doit être lent
Java is currently just-in-time-compiled by the JVM (Java virtual machine). Java est actuellement juste-à-temps-compilés par la JVM (Java Virtual Machine). Just-in-time-compilation gives it equivalent performance to compiled applications, sometimes better. Just-in-time compilation-il donne des résultats équivalents à des applications compilées, parfois mieux. Sun’s JIT is not the only one either. JIT de Sun n'est pas le seul. IBM and others provide their implementation of JVM with just-in-time-compilation too. IBM et d'autres fournissent leur mise en œuvre de JVM avec juste-à-temps-compilation.
You can also compile Java programs in native executables with free compilers like gcj ( http://gcc.gnu.org/java/ ) or paid ones like Excelsior JET ( http://www.xlsoft.com/en/products/jet/index.html ). Vous pouvez aussi compiler des programmes Java dans des exécutables avec des compilateurs libres comme gcj (http://gcc.gnu.org/java/) ou payé, comme Excelsior JET (http://www.xlsoft.com/en/products/jet / index.html).
Java’s slowness is not intrinsic, that is an architectural mis-conception as demonstrated above. La lenteur de Java n'est pas intrinsèque, qui est une architecture mal-conception comme l'a montré ci-dessus. But wait there’s more.. Mais attendez, il ya plus ..
Java versus C++ Benchmarks Java par C + + Repères
Let’s look at some benchmarks comparing Java with C++. Jetons un coup d'oeil à certains critères de comparer Java en C + +.
Performance of Java versus C++ by JPLewis and Ulrich Neumann from Computer Graphics and Immersive Technology Lab, University of Southern California Performance de Java par C + + par JPLewis et Ulrich Neumann à partir de Computer Graphics et immersifs Technology Lab de l'Université de Californie du Sud
http://www.idiom.com/~zilla/Computer/javaCbenchmark.html Zilla http://www.idiom.com/ ~ / Informatique / javaCbenchmark.html
This article from 2003 finds “This article surveys a number of benchmarks and finds that Java performance on numerical code is comparable to that of C++ , with hints that Java’s relative performance is continuing to improve. Cet article de 2003 de trouver "Cet article enquêtes un certain nombre de repères et constate que sur la performance Java code numérique est comparable à celle de C + +, Java laisse entendre que la performance relative continue de s'améliorer. We then describe clear theoretical reasons why these benchmark results should be expected.” Nous avons ensuite décrire clairement théorique raisons pour lesquelles ces résultats des tests de performances devrait être prévu. "
I would like to quote even further as they gave a detailed explanation about the slowness myth of Java and dispels it thoroughly: Je voudrais citer encore comme ils ont donné une explication détaillée au sujet de la lenteur mythe de Java et il dissipe en détail:
Conclusions: Why is “Java is Slow” so Popular? Conclusions: Pourquoi est "Java est lent" si populaire?
Java is now nearly equal to (or faster than) C++ on low-level and numeric benchmarks. Java est maintenant presque égale à (ou plus rapide que) C + + sur les bas-niveau et des critères numériques. This should not be surprising: Java is a compiled language (albeit JIT compiled). Cela ne devrait pas être surprenant: Java est un langage compilé (bien compilé JIT).
Nevertheless, the idea that “java is slow” is widely believed. Néanmoins, l'idée que "Java est lent" est largement cru. Why this is so is perhaps the most interesting aspect of this article. Pourquoi il en est ainsi est peut-être l'aspect le plus intéressant de cet article.
Let’s look at several possible reasons: Jetons un coup d'oeil à plusieurs raisons possibles:
* Java circa 1995 was slow. * Java vers 1995 a été lent. The first incarnations of java did not java a JIT compiler, and hence were bytecode interpreted (like Python for example). La première incarnations de Java n'a pas java un compilateur JIT, et, par conséquent, ont été interprétées de bytecode (comme Python par exemple). JIT compilers appeared in JVMs from Microsoft, Symantec, and in Sun’s java1.2. Compilateurs JIT paru dans JVM de Microsoft, Symantec, et de Sun java1.2.
This explanation is implausible. Cette explication est plausible. Most “computer folk” are able to rattle off the exact speed in GHz of the latest processors, and they track this information as it changes each month (and have done so for years). La plupart des "ordinateur populaire" sont en mesure de hochet exacte de la vitesse en GHz des processeurs plus tard, et ils le suivi de cette information car elle change chaque mois (et l'ont fait pendant des années). Yet this explanation asks us to believe that they are not able to remember that a single and rather important language speed change occurred in 1996. Pourtant, cette explication nous demande de croire qu'ils ne sont pas en mesure de se rappeler qu'un seul et non la langue de vitesse important changement est survenu en 1996.
* Java can be slow still. * Java peut être lent encore. For example, programs written with the thread-safe Vector class are necessarily slower (on a single processor at least) than those written with the equivalent thread-unsafe ArrayList class. Par exemple, des programmes écrits avec le fil de sécurité Vector classe sont nécessairement plus lent (sur un seul processeur au moins) que celles écrites avec l'équivalent thread-classe ArrayList dangereux.
This explanation is equally unsatisfying, because C++ and other languages have similar “abstraction penalties”. Cette explication est tout aussi insatisfaisant, parce que C + + et d'autres langues ont des "sanctions abstraction". For example, The Kernighan and Pike book The Practice of Programming has a table with the following entries, describing the performance of several implementations of a text processing program: Par exemple, Le Kernighan et Pike livre La pratique de la programmation a un tableau avec les entrées suivantes, décrivant les performances de plusieurs mises en œuvre d'un programme de traitement de texte:
Version 400 MHz PII Version PII 400 MHz
C 0.30 sec C 0,30 SEC
C++/STL/deque 11.2 sec C + + / STL / deque 11,2 sec
C++/STL/list 1.5 sec C + + / STL / list 1,5 secAnother evidently well known problem in C++ is the overhead of returning an object from a function (several unnecessary object create/copy/destruct cycles are involved). Une autre évidence, problème bien connu en C + + est le retour des frais généraux d'un objet à partir d'une fonction (plusieurs inutile objet de créer / copier / cycles de destruction sont impliqués).
* Java program startup is slow. * Java programme de démarrage est lent. As a java program starts, it unzips the java libraries and compiles parts of itself, so an interactive program can be sluggish for the first couple seconds of use. Comme un programme Java commence, il unzips java compile les bibliothèques et les parties de lui-même, de manière interactive un programme peut être lente pour la première quelques secondes d'utilisation.
This approaches being a reasonable explanation for the speed myth. Cette approche étant une explication raisonnable pour la vitesse mythe. But while it might explain user’s impressions, it does not explain why many programmers (who can easily understand the idea of an interpreted program being compiled) share the belief. Mais tout cela pourrait expliquer les impressions de l'utilisateur, il n'explique pas pourquoi de nombreux programmeurs (qui peut facilement comprendre l'idée d'interpréter un programme en cours d'élaboration) se partagent la conviction.
Two of the most interesting observations regarding this issue are that: Deux des plus intéressantes observations sur cette question sont les suivantes:
1. there is a similar “garbage collection is slow” myth that persists despite decades of evidence to the contrary, and il est même "la collecte des déchets est lent" mythe qui persiste malgré des décennies de preuve contraire, et
2. that in web flame wars, people are happy to discuss their speed impressions for many pages without ever referring to actual data. que sur le Web flamme guerres, les gens sont heureux de discuter de leurs impressions de vitesse nombre de pages sans jamais se référant aux données réelles.Together these suggest that it is possible that no amount of data will alter peoples’ beliefs, and that in actuality these “speed beliefs” probably have little to do with java, garbage collection, or the otherwise stated subject. Our answer probably lies somewhere in sociology or psychology. Ensemble, ces suggèrent qu'il est possible qu'aucun montant de modifier les données des peuples croyances, et que en réalité ces "vitesse croyances" probablement pas grand chose à voir avec java, la collecte des ordures, ou autrement dit le sujet. Notre réponse se trouve probablement quelque part dans la sociologie ou la psychologie. Programmers, despite their professed appreciation of logical thought, are not immune to a kind of mythology, though these particular “myths” are arbitrary and relatively harmless. Programmeurs, en dépit de leur appréciation profès de la pensée logique, n'échappent pas à une sorte de mythologie, bien que ces "mythes" sont arbitraires et relativement inoffensifs.
Here is another benchmark on Java versus C++ Voici une autre référence sur Java par C + +
The Java is Faster than C++ Benchmark Le Java est plus rapide que le C + + Indice de référence
http://www.kano.net/javabench/
This was also quoted in JDJ magazine article: http://java.sys-con.com/read/45250.htm Cela a également été cité dans le magazine JDJ article: http://java.sys-con.com/read/45250.htm
“I used G++ (GCC) 3.3.1 20030930 (with glibc 2.3.2-98) for the C++, with the -O2 flag (for both i386 and i686). «J'avais l'habitude G + + (GCC) 3.3.1 20030930 (avec la glibc 2.3.2-98) pour le C + +, avec le flag-O2 (pour les i386 et i686). I compiled the Java code normally with the Sun Java 1.4.2_01 compiler, and ran it with the Sun 1.4.2_01 JVM. J'ai compilé le code Java normalement avec Sun Java 1.4.2_01 compilateur, et il a couru avec la JVM de Sun 1.4.2_01. I ran the tests on Red Hat Linux 9 / Fedora Test1 with the 2.4.20-20.9 kernel on a T30 laptop. J'ai couru les essais sur Red Hat Linux 9 / Fedora Test 1 avec le noyau 2.4.20-20.9 sur un ordinateur portable T30. The laptop has a Pentium 4 mobile chip, 512MB of memory, a sort of slow disk. L'ordinateur portable possède un Pentium 4 mobile à puce, 512 Mo de mémoire, une sorte de disque lent.
The results I got were that Java is significantly faster than optimized C++ in many cases. “ Les résultats obtenus ont été que Java est nettement plus rapide que optimisé C + + dans de nombreux cas. "
“ JVM startup time was included in these results. "JVM temps de démarrage a été inclus dans ces résultats. That means even with JVM startup time, Java is still faster than C++ in many of these tests. “ Cela signifie que même avec le temps de JVM, Java est encore plus rapide que le C + + dans un grand nombre de ces essais. "
BTW: The article also links to lots of other benchmarks at the end. TVA: L'article contient également des liens vers de nombreux autres critères à la fin.
Hopefully I have finally laid rest to the myth of “ java is slow “. J'espère que j'ai enfin le repos, le mythe de "Java est lent". It is a perception, a blatantly false perception, not a reality. Il s'agit d'une perception, une perception fausse de façon flagrante, pas une réalité. Get over it. Get over it.
Filed under Classé sous Headline News Headline News , J2EE , Java Software Logiciel de Java , Programming Programmation | |
| |
RSS 2.0 RSS 2,0 | |
Trackback this Article | cet article |
Email this Article Envoyer cet article
You may also like to read Vous mai également à lire |





August 26th, 2007 at 5:52 am Août 26, 2007 at 5:52 am
Maybe you haven’t had to deploy an EAR to Weblogic and call just a simple JSP. Vous avez peut-être pas eu à déployer une oreille à Weblogic et appel d'un simple JSP. You would understand easily why some developers think Java is slow… Vous ne comprendrait facilement pourquoi certains développeurs pense que Java est lent…
August 26th, 2007 at 10:02 am Août 26, 2007 at 10:02 am
Weblogic is slow, has been slow for ages. Weblogic est lente, a été lent pour les âges. There is a good reason why they don’t allow any performance tests of their application server. Il ya une bonne raison pour laquelle ils ne permettent pas les tests de performance de leur serveur d'applications. However that doesn’t affect Java’s performance. Quoi qu'il n'a pas d'incidence sur les performances de Java. Try running a simple jsp on tomcat. Essayez de lancer un simple jsp sur Tomcat. It is lightning fast. Il est rapide foudre.
August 26th, 2007 at 9:39 pm Août 26, 2007 at 9:39 pm
I wrote a similar piece in my blog a few months ago which ended-up being in the Java Developers Journal as well, but I thought you’d find it somewhat relevant and interesting: J'ai écrit une pièce similaire dans mon blog il ya quelques mois qui a pris fin-up en cours dans le Journal de Java ainsi, mais je pense que vous trouveriez un peu pertinents et intéressants: Correcting Logical Fallacies: Why Java Is Not Slow Correction des erreurs logique: pourquoi Java n'est pas lent
September 25th, 2007 at 10:06 pm Septembre 25th, 2007 at 10:06 pm
Thanks for the link. Merci pour le lien.