Они на самом деле не сопоставимы.
Apache Tomcat не является сервером J2EE. Это просто контейнер сервлетов для веб-приложений. Ничего более. Если вам нужны реализации J2EE API, вы должны взять их из других источников. Например, используя сервер Apache Geronimo, который использует Tomcat в качестве своего контейнера, или принимая файлы JAR из Glassfish.
Glassfish - полный Java-сервер приложений с реализацией для таких API, как JPA, EJB и т. Д. Glassfish содержит Servlet Engine, первоначально использовавшийся Tomcat, но они улучшили его (не знаю, что именно). Более поздние серверы Glassfish используют другой контейнер, использующий grizzly
, который использует NIO API для ввода / вывода и достаточно хорошо масштабируется. Насколько я знаю, сервлетный движок Glassfish более производительный. Здесь я нашел хороший тест (хотя он немного староват):
http://weblogs.java.net/blog/sdo/archive/2007/05/how_to_test_con.html