Java и tomcat против ASP.NET и IIS

до недавнего времени я считал себя довольно хорошим веб-программистом (подходит для коммерческого опыта 10yrs в различных приложениях электронной коммерции, статических и корпоративных). Я самоучка и всегда использовал стек продуктов Microsoft (ASP, ASP.NET)...

Мои приложения всегда функциональны, относительно без ошибок,но никогда не были молниеносными. Как частый веб-пользователь, я всегда считал это нормой... как быстро работают сайты от big tech игроки (eBay, Facebook, Microsoft, IBM, Dell, Telerik и т. д.) - На самом деле никто не особенно быстр. Я всегда приписывал это "тому, как обстоят дела с веб-приложениями"...

...затем я столкнулся с продуктом под названием Джира от атласяна, и это остановило меня на моем пути...

Это приложение быстро, и я имею в виду ослепительно быстро.. слишком быстро переключается между страницами, полностью живой контент, много изображений и данных и перекрестных ссылок и т. д так далее...

Я запускаю это в интрасети с большой БД приложений, и это работает на очень обычном сервере (один процессор, SATA HDD, 8GB RAM).

Я что-то пропустила?? Мои методы программирования настолько плохи?? Мне интересно, связано ли это увеличение скорости с тем, что оно написано на Java и работает на Tomcat.

есть ли у кого-нибудь какие-либо критерии для сравнения JSP / ASP или Tomcat / Службы IIS???

спасибо, Марк!--1-->

Примечание: это не вопиющий плагин для Jira. Я не работаю на них и не имею к ним никакого отношения... но я хотел бы иметь возможность писать такие приложения, как они :)

6 ответов


YMMV. Но одна из самых долгоживущих вещей, которые больше не верны,-это утверждение, что "Java медленная". За исключением с плавающей запятой (где большинство реализаций Java не имеют права использовать оборудование с плавающей запятой), Java, как правило, так же быстро или быстрее, чем скомпилированный код. Некоторые из лучших и ярких потратили годы усилий на обеспечение этого, включая такие вещи, как динамическая перекомпиляция / повторная оптимизация кода на основе метрик времени выполнения - что-то, что статически компилируется такие языки, как C или assembler, не могут похвастаться.

ASP - это противоположная крайность, так как исходный ASP должен был перекомпилировать каждый запрос страницы каждый раз, когда он был сделан. ASPX решил это, разрешив сохранение скомпилированного кода страницы. Это избавило от многих бесполезных накладных расходов.

более веской причиной предпочесть Java ASPanything/IIS является свобода. Веб-приложение Java/Tomcat будет работать практически под любой ОС практически на любом оборудовании. IIS работает в Windows. Период. И по большей части, это также означает Intel. Ни Sparc, ни zSeries. Может, тебе все равно. Но опять же, может быть, на следующей неделе IBM предложит вашему работодателю сделку "не могу отказаться от мейнфрейма".

У меня нет тестов, и есть много вещей, которые могут сделать одну платформу предпочтительной. Но я навсегда отказался от идеи "Java медленно", когда я столкнулся с инструментом Poseidon UML с его классным графическим интерфейсом в реальном времени и инструментом FreeMind mindmapper. Небольшой хит для запуска JVM, но после этого вы никогда не узнаете, на каком языке работаете.


большой дискуссии. Java vs .Сеть.

когда .Net впервые вышел, было написано приложение под названием " зоомагазин."Который был .Net-портом справочного приложения Sun J2EE, "зоомагазин". Было объявлено, что реализация Microsoft была "быстрее"."

Как и во всем, особенно в том, что касается маркетинга, вы должны копать глубже, чтобы найти правду.

любая технология может быть быстрой с достаточным оборудованием и правильным дизайном. В моем опыт есть два фактора, чтобы ускорить: какой тип оборудования используется и как вы архитектор приложения (это включает в себя настройку базы данных).


кэширование на различных уровнях (response, db и т. д.) делает огромное различие в отзывчивости веб-приложения. Существует также много вещей, которые делаются, чтобы уменьшить трудоемкие операции, такие как пул соединений с БД, кэширование инструкций sql и т. д. Как бы я ни хотел сказать, что Java лучше : -), я думаю, что в этом случае производительность обусловлена тем, как была написана Jira, и тем, что она запускается внутри (вероятно, с несколькими пользователями по сравнению с eBay, Facebook, Microsoft). Этот сайт, Stackoverflow, использует ASP.NET MVC и IIS и очень отзывчивы, и я предполагаю (поскольку код еще не открыт), что они используют многие из тех же методов, которые вы найдете в Jira или любом другом веб-приложении, построенном для масштабирования.


Я думаю, что обычно не фреймворки и языки, используемые, делают приложение медленным. По моему опыту, некоторые фреймворки, такие как JSF или .NET server side controls, дают разработчикам много свободы, чтобы делать слишком много вызовов базы данных и искать вещи слишком часто, но это определенно не вина используемой платформы.

Держите ваше приложение как можно более легким и сосредоточьтесь на сохранении данных, отправленных клиенту, как можно меньше, и у вас будет быстрый приложение. Обычно быстрее разрабатывать быстрые приложения.

люди Jira написали лучшее в своем классе приложение (и взимают за него плату) - хорошая работа Крокодил Данди.


Я также предлагаю рассмотреть также два аспекта:

  • мероприятия по обслуживанию: ведение журнала и развертывание. На мой взгляд, под unix-сервером проще регистрировать, развертывать и поддерживать новый выпуск, чем делать то же самое на сервере Windows.
  • если проект требует использования некоторого приложения с открытым исходным кодом (т. е. репозитория Alfresco), Java-лучшие решения

мнение людей в основном предвзятое. Большинство людей никогда не пробовали другого, утверждая, что другой медленнее. Я не доверяю никакому ответу: это просто мнение. Скучно читать одни и те же 4 цента снова и снова.