Здравствуйте, Astellar, Вы писали:
A>Очень интересно,кто что знает и думает по этому поводу?
По поводу скорости. Говорить о производительности Java-программ надо в контексте задач.
Наиболее известные проблемные вещи — это
1. GUI-библиотека Swing.
2. Entity EJB на больших выборках.
3. Некоторые приложения активно работающие с памятью или просто игнорирующие некоторые практики.
По 1. есть множество альтернатив: SWT, LwVCL, Thinlet, можно посмтреть j-smile по поводу потенциальных возможностей легковестных Java-приложений (это кстати и к вопросу о том сколько весит VM).
Кроме того эта проблема постепенно решается с выходом новых сановских VM и увелиением производительности компьютеров. Существует множество Swing приложений, которым отностильная ресурсоемкость не помешала стать популярными.
По 2. опять же есть альтернативные подходы, напимер самое простое — JDBC, также можно посмтореть Hibernate и Spring, есть и обходные пути в рамках EJB.
По поводу практик и памяти — есть множество хороших источников информации о том как надо (а точнее как не надо) писать. Некоторые:
книга "Горький вкус Java",
http://otn.oracle.com/products/ias/pdf/performance-best-practices.pdf (в основном web и JDBC),
статьи на theserverside.com.
Недавно производил анализ производительности JSP vs PLS. Результат для простой выборки на медленной БД оба вдали 60мс, на быстрой оба 8мс. Вывод по сравнению с БД Java не дает заметного оверхэда и для вэб по производительности подходит не меньше других технологий. Не говоря о возможностях которые она дает для веб. Так что прежде чем говорить что что-то торомозит надо провоить анализ, профйалинг и т.д.
По поводу компиляторов и VM. Есть хорошие оптимизирующие компиляторы, например GJC, Excelsior. Да, скомпилированное так или иначе содержит VM, но на C тоже практически все приложения используют CRT. Вопрос в том насколько довесок большой и критично ли это для приложения.
Всего хорошего.
Виктор.