Вопросы по PHP и Java - PullRequest
       17

Вопросы по PHP и Java

3 голосов
/ 03 декабря 2009

Я хочу знать, как Java (JSP) на Tomcat сравнивает с PHP на Apache с точки зрения производительности.

Два сервера с одинаковыми конфигурациями оборудования: один работает на Tomcat / Java (JSP), другой - на Apache / PHP, и оба сервера работают с максимальным количеством соединений, которые они могут обрабатывать одновременно. Будут ли они несколько близко или один отойдет от другого с большим отрывом? Я просто хочу знать, будет ли Tomcat / Java (JSP) большим ударом по производительности, если я переключусь на него по сравнению с PHP. Если кто-то может дать подробный ответ о том, почему один быстрее, чем другой, это было бы удивительно. Ссылки тоже отличные, я ничего удивительного не смог найти в сети.

Пожалуйста, не участвуйте в войнах Java и PHP, речь идет только о производительности, но не о самих языках.

Примечание. Если у меня возникнут другие проблемы, связанные с переходом на Java с PHP, сообщите мне. Я ДЕЙСТВИТЕЛЬНО ненавижу задавать этот вопрос, потому что я обычно первый, кто говорит «программируй, что тебе нравится», но в моей ситуации мне нужно то, что также хорошо для проектов, на которые я работаю. Я знаю, что в JSP написаны большие сайты, но это не значит, что они лучше.

Спасибо

Ответы [ 2 ]

15 голосов
/ 03 декабря 2009

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

Ответ на ваш вопрос: они оба достаточно быстрые.

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

Java также имеет более сложную модель разработки, поскольку веб-процессы являются постоянными. Это может иметь преимущество в производительности, но также может создавать такие проблемы, как утечка памяти и других ресурсов, чего нет в PHP, поскольку все создается и уничтожается при каждом запросе (за исключением информации о сеансе, memcache и т. Д.).

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

10000 долларов можно купить очень много оборудования. Он может купить оборудование для запуска ТАК. Это не отнимает у разработчиков много времени.

У меня есть опыт разработки Java и PHP. Я обычно выберу PHP для веб-разработки из-за:

  • быстрее тестировать изменения в разработке (т. Е. Нет этапов сборки / развертывания, а у Java hot-deploy есть серьезные ограничения). Слова не могут выразить, насколько свободно тестировать изменения, сохранив файл, над которым вы работаете, и нажав перезагрузить браузер, вместо запуска процесса сборки Ant / Maven;
  • гораздо меньше проблем утечки памяти / ресурсов;
  • обширная библиотека функций для выполнения практически любых задач;
  • дешевле для хоста (на нижнем уровне).

Я буду использовать Java для некоторых вещей, например для всего, что связано с фоновой обработкой и многопоточностью, что не является сильной стороной PHP.

Вы заметите, что производительность (или ее отсутствие) даже не считается причиной или снова.

Извините, если это не отвечает на ваш вопрос, но такие проблемы с производительностью бесполезны.

0 голосов
/ 03 декабря 2009

Лучший способ ответить на вопросы о производительности - с помощью эталона. Реализуйте простую страницу на PHP и Java, а затем сравните их с помощью ab (Apache Benchmark).

Сказав это, я подозреваю, что Java превзойдет PHP из-за природы двух платформ. Java компилируется в оптимизированный байт-код (один раз), а затем интерпретируется виртуальной машиной. Когда Tomcat запускается, JVM загружает классы, необходимые для любой данной страницы, и сохраняет их в памяти, чтобы они были готовы к работе, когда HTTP-запрос попадает на веб-сервер. Сравните это с PHP, который перезагружает и заново интерпретирует код с нуля при каждом вызове Apache. Этому в значительной степени помогает кэширование кода операции, но все же не до уровня того, что происходит в JVM.

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