Производительность программ на Java
Существует мнение, что программы написанные на Java медленно работают. Это утверждение было
верно очень давно, во времена Java 1, а теперь оно совершенно не соответствует истине.
Современная виртуальная машина Java больше не является интерпретатором. В ней работает самый
настоящий оптимизирующий компилятор, который на лету преобразует Java-байткод в машинные коды.
Эта технология называется JIT компиляцией, сокращение от английского Just In Time Compiler.
Конечно, такое преобразование занимает какое-то время, однако овчинка стоит выделки.
Сейчас на рынке имеется множество процессоров с разной внутренней архитектурой. Следствием этого
является то, что техника оптимизации для разных процессоров может быть очень разной,
причем даже в приделах линейки процессоров одной фирмы. То, что является оптимизацией для одного
процессора, может приводить к понижению производительности на процессоре другого типа.
А теперь задумайтесь, для какого процессора оптимизированы Ваши программы? Для Penitum 3?
Тогда все возможности Вашего Pentium 4 попросту не используются. А что, если программа была
оптимизирована для процессора Pentium, а Вы используете процессор фирмы AMD?
Программы на Java не имеют такой проблемы поскольку JIT компилятор всегда имеет возможность
создавать код оптимальный для Вашего типа процессора. Благодаря этому, программы на Java работают
не только не медленнее программ на C++, но иногда даже быстрее, и это не смотря на то,
что какая-то часть времени исполнения тратится на преобразование байткода Java в машинные коды.
Существует мнение что программы написанные на Java медленно работают.
Это утверждение было верно очень давно, во времена Java 1, а теперь
оно совершенно не соответствует истине.
Результаты сравнения скорости исполнения Java программ и программ на
С++ можно посмотреть
например здесь.
Некоторые утверждают, что программы на Java долго загружаются. Давайте сравним время загрузки некоторых
программ на Java и программ написанных на других языках программирования. Для начала измерим время
загрузки некоторых программ написанных на компилируемых языках программирования. В таблице показано
время первого запуска и время второго запуска, когда программа находится в кеше. Время измерено в
секундах:
| Программа |
Первый |
Второй |
| 3D Studio MAX R5 |
24.03 |
14.54 |
| Lock On: Modern Air Combat |
21.38 |
11.12 |
| Delphi 7 Enterprise |
9.68 |
5.71 |
| Photoshop 6.0 |
7.37 |
3.43 |
| Mozilla 1.5 |
3.38 |
2.35 |
Теперь измерим время загрузки программ написанных на Java. Для этих программ проводились три испытания:
первый запуск делался сразу после загрузки ОС, второй, когда в память уже загружалась виртуальная
машина Java, но само приложение еще не загружалось и третий запуск, когда приложение уже находилось
в кеше. Как и раньше, время замерено в секундах:
| Программа |
Первый |
Второй |
Третий |
| NetBeans 3.5 |
15.30 |
11.03 |
5.19 |
| jEdit 4.1 |
8.03 |
4.24 |
3.07 |
| Biker's Log 1.6 |
3.12 |
1.70 |
1.50 |
О чем говорят данные цифры? Совершенно ни о чем. Бывают программы написанные на С++, которые
грузятся очень долго, бывают программы на Java которые грузятся быстро, а бывает и наоборот.
Другими словами, время загрузки зависит не столько от того на каком языке была написана программа,
сколько от самой программы.
Итак, со скоростью работы Java-программ мы разобрались. Они работают, как минимум не медленнее
программ написанных на других языках программирования, а иногда и быстрее. Теперь рассмотрим какие
преимущества дают программы на Java простому пользователю.
Несомненным достоинством программ на Java является то, что их можно использовать в любых операционных
системах для которых есть Java-машины. Захотели сменить Windows на Linux? Не проблема, ваше любимое
Java-приложение будет работать и там. Ваш бизнес вырос и возможностей PC-серверов больше не хватает?
Программы Java можно выполнять даже на компьютерах класса Mainframe. При смене операционной системы
не придется тратить деньги на покупку новой версии программы. Программы, написанные на Java, будут
чуствовать себя там так же хорошо, как и в старой.
Подводя итоги следует сказать, что современная Java является очень удачной платформой, предоставляющей
богатые возможности не только программистам, но и пользователям.
Присылайте Ваши отзывы, замечания и предложения по темам для новых
статей при помощи
этой
формы. Мы всегда рады конструктивной критике.
Перепечатка разрешается только с письменного согласия Flowix.