Java is Slow Revisited Java идет медленно 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. Существует незначительные войны происходит на Солнце выпускников списка адресатов и в других местах, где общее заблуждение: "Java медленное" имеет наплавки снова и снова, к разочарованию опытных разработчиков Java которые имеют известные возрастов, что Java очень быстро даже по сравнению - С + + и был таким на протяжении нескольких лет. All this re-surfaced because Sun decided to Все это вновь всплыли потому, что Sun решила change its ticker symbol to JAVA изменить свой символ на JAVA (previously it was SUNW). (ранее он был 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. Все это ужасно разочаровывает для Java разработчиков которые гордятся тем, Java и хорошо осознают свои возможности, поскольку они плечо она изо дня в день. So let’s rest this myth to rest once and for all, shall we? Итак, давайте остальных этот миф на отдых один раз и навсегда, мы должны?
Myth 1: Java is Interpreted language and so it must be slow Миф 1: Java интерпретируется языка и так оно должно быть медленным
Java is currently just-in-time-compiled by the JVM (Java virtual machine). Java в настоящее время точно в срок-составленный JVM (виртуальная машина Java). Just-in-time-compilation gives it equivalent performance to compiled applications, sometimes better. Точно в срок-компиляция дает ей аналогичные характеристики для составлено приложений, иногда лучше. Sun’s JIT is not the only one either. Sun's JIT это не только один либо. IBM and others provide their implementation of JVM with just-in-time-compilation too. IBM и другие обеспечивают их реализации JVM с "точно в срок-слишком компиляции.
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 ). Вы также можете составить Java программ в родной исполнимые файлы с бесплатным компиляторов хотел помощью gcj (http://gcc.gnu.org/java/) или выплаченные из них, как 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. Java в медлительности не является внутренней, то есть архитектурный неверную концепцию о чем свидетельствует прежде. But wait there’s more.. Но это еще не все ..
Java versus C++ Benchmarks Java против C + + Ориентиры
Let’s look at some benchmarks comparing Java with C++. Давайте посмотрим на некоторые показатели по сравнению с Java С + +.
Performance of Java versus C++ by JPLewis and Ulrich Neumann from Computer Graphics and Immersive Technology Lab, University of Southern California Исполнение Java в сравнении с C + + по JPLewis и Ульрих Неймана от компьютерной графики и технике погружения Lab, Университет Южной Калифорнии
http://www.idiom.com/~zilla/Computer/javaCbenchmark.html http://www.idiom.com/ ~ zilla / Computer / 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. Эта статья с 2003 года считает "Эта статья обследований число показателей и приходит к выводу, что производительность Java на цифровой код является сопоставимым с С + +, с подсказки о том, что Java в относительных показателей продолжает улучшаться. We then describe clear theoretical reasons why these benchmark results should be expected.” Мы потом описать четкие теоретические причины этих базовых результатов следует ожидать ".
I would like to quote even further as they gave a detailed explanation about the slowness myth of Java and dispels it thoroughly: Я хотел бы процитировать еще дальше, как они дали подробные разъяснения по поводу медлительности миф Ява и dispels она тщательно:
Conclusions: Why is “Java is Slow” so Popular? Выводы: Почему "Ява идет медленно" настолько популярным?
Java is now nearly equal to (or faster than) C++ on low-level and numeric benchmarks. Java в настоящее время почти равное (или быстрее) C + + на низком уровне и числовых показателей. This should not be surprising: Java is a compiled language (albeit JIT compiled). Это не должно удивлять: Java является составлено языка (хотя и составлен JIT).
Nevertheless, the idea that “java is slow” is widely believed. Тем не менее, идея о том, что "java идет медленно" Широко распространено мнение. Why this is so is perhaps the most interesting aspect of this article. Почему это так, пожалуй, наиболее интересным аспектом данной статье.
Let’s look at several possible reasons: Давайте рассмотрим несколько возможных причин:
* Java circa 1995 was slow. * Java Около 1995 года был медленным. The first incarnations of java did not java a JIT compiler, and hence were bytecode interpreted (like Python for example). Первого воплощения в java не java JIT компилятор, и, следовательно, были bytecode устно (например, Python, например). JIT compilers appeared in JVMs from Microsoft, Symantec, and in Sun’s java1.2. JIT компиляторы появились в JVMs от Microsoft, Symantec и Sun's java1.2.
This explanation is implausible. Это объяснение является implausible. 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). Большинство "народного компьютера" могут покинуть rattle точная скорость в ГГц из последних процессоров, и они отслеживать эту информацию, как она меняется каждый месяц (и сделали это в течение многих лет). 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. Однако это объяснение просит нас поверить в то, что они не в состоянии помнить о том, что одно и довольно важное изменение скорости языка произошел в 1996 году.
* Java can be slow still. * Java может быть все еще медленно. 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. Например, программы, написанные с нитью-сейф "Вектор" класса обязательно медленнее (на один процессор, по крайней мере), чем те, написанные с эквивалентным нитей ArrayList небезопасным-класса.
This explanation is equally unsatisfying, because C++ and other languages have similar “abstraction penalties”. Это объяснение не менее unsatisfying, потому что C + + и другие языки имеют схожие "абстракции наказания". 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: Например, Kernighan и Щука книгу Практика программирования стол со следующих позиций, описывающих выполнение нескольких реализаций обработки текста программы:
Version 400 MHz PII Версия 400 МГц PII
C 0.30 sec C 0,30 сек
C++/STL/deque 11.2 sec C + + / STL / deque 11,2 сек
C++/STL/list 1.5 sec C + + / STL / Список 1,5 секAnother 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). Другой, очевидно, хорошо известная проблема в C + + является накладных возврата объекта с функцией (несколько ненужных объект создается / копировать / уничтожить циклах участвуют).
* Java program startup is slow. * Java запуске программы идет медленно. 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. Как java программа начинается, она unzips java библиотеки и компилирует частей само по себе, поэтому интерактивные программы может быть вялым за первые пару секунд после использования.
This approaches being a reasonable explanation for the speed myth. Это подходы время разумное объяснение скорости миф. 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. Но в то время как она может объяснить пользователя впечатления, он не объясняет, почему многие программисты (которые могут легко понять идею интерпретировать программа составляется) делятся убеждений.
Two of the most interesting observations regarding this issue are that: Два из наиболее интересных замечаний, касающихся этого вопроса заключаются в том, что:
1. there is a similar “garbage collection is slow” myth that persists despite decades of evidence to the contrary, and есть аналогичные "сбор мусора идет медленно" миф о том, что сохраняется, несмотря десятилетий свидетельства об обратном, и
2. that in web flame wars, people are happy to discuss their speed impressions for many pages without ever referring to actual data. , что в веб-баталии, люди рады обсудить их скорость показы для многих страницах, не ссылаясь на фактические данные.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. Вместе эти предположить, что возможно, что она не объем данных будет изменять народов, верований, и что в действительности эти "скорость убеждения", вероятно, имеют мало общего с java, сбор мусора, или иное вопросу. Наш ответ-то, вероятно, заключается в социологии или психологии. 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. Программисты, несмотря на их признательность всеуслышание логической мысли, не застрахован от рода мифологии, хотя эти особенности "мифы", являются произвольными и сравнительно безвредны.
Here is another benchmark on Java versus C++ Вот еще один базового о Java в сравнении с C + +
The Java is Faster than C++ Benchmark Java быстрее C + + Benchmark
http://www.kano.net/javabench/
This was also quoted in JDJ magazine article: http://java.sys-con.com/read/45250.htm Это было также цитируемый в JDJ журнале статью: 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). "Я использовал G + + (ССЗ) 3.3.1 20030930 (с glibc 2.3.2-98) на C + +, с флагом-O2 (для обеих i386 и 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. Я составляются, как правило, код Java с Sun Java 1.4.2_01 компилятор, и побежал он с Sun JVM 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. Я противоречит испытаний на Red Hat Linux 9 / Fedora Test1 с 2.4.20-20.9 ядро на T30 ноутбук. The laptop has a Pentium 4 mobile chip, 512MB of memory, a sort of slow disk. Ноутбук имеет Pentium 4 мобильный чип, 512 Мб оперативной памяти, своего рода медленный диск.
The results I got were that Java is significantly faster than optimized C++ in many cases. “ Результаты меня заключались в том, что Java значительно быстрее, чем оптимизированный C + + во многих случаях ".
“ JVM startup time was included in these results. "JVM время запуска, был включен в этих результатов. That means even with JVM startup time, Java is still faster than C++ in many of these tests. “ Это означает, что даже с JVM время запуска, Java-прежнему быстрее, чем C + + во многих из этих испытаний ".
BTW: The article also links to lots of other benchmarks at the end. BTW: В этой статье также ссылки на множество других ориентиров на конец.
Hopefully I have finally laid rest to the myth of “ java is slow “. Надеюсь я, наконец, заложен отдыха для мифа о "java идет медленно". It is a perception, a blatantly false perception, not a reality. Это представление, явно ложное представление, а не реальность. Get over it. Получить над ним.
Filed under Поданного в соответствии с Headline News Headline News , J2EE , Java Software Программное обеспечение Java , Programming Программирование | |
| |
RSS 2.0 RSS 2,0 | |
Trackback this Article | это статья |
Email this Article Отослать Статья
You may also like to read Вы можете также люблю читать |





August 26th, 2007 at 5:52 am 26 августа 2007 года в 5:52 утра
Maybe you haven’t had to deploy an EAR to Weblogic and call just a simple JSP. Может быть, вы еще не приходилось развертывать EAR к Weblogic и требуют только простой JSP. You would understand easily why some developers think Java is slow… Вам будет легко понять, почему некоторые разработчики Java думаю, идет медленно…
August 26th, 2007 at 10:02 am 26 августа 2007 года в 10:02 утра
Weblogic is slow, has been slow for ages. Weblogic идет медленно, медленно на века. There is a good reason why they don’t allow any performance tests of their application server. Существует веские основания, почему они не допускают каких-либо испытаний эффективности их использования сервера. However that doesn’t affect Java’s performance. Однако это отнюдь не повлияет на Java записи. Try running a simple jsp on tomcat. Попробуйте выполнить простые по jsp tomcat. It is lightning fast. Это молнии быстро.
August 26th, 2007 at 9:39 pm 26 августа 2007 года в 9:39 вечера
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: Я написал аналогичный фрагмент в своем блоге несколько месяцев назад, которая закончилась деятельность находящихся в Java-разработчики журнал, но я подумал, нужно найти его довольно актуальной и интересной: Correcting Logical Fallacies: Why Java Is Not Slow Исправление логических заблуждений: почему Java не медленными
September 25th, 2007 at 10:06 pm 25 сентября 2007 года в 10:06 вечера
Thanks for the link. Спасибо за ссылку.