12/22/2023 0 Comments Wildfly vs glassfish performanceToday IBM has two versions of Websphere 8.5 : Classic and Liberty, both implementing Java EE 7. *Weblogic doesn’t show milliseconds in the logs so I had to change the starting script to add a few date +%s%3N. $WLS_HOME/user_projects/domains/base_domain/startWebLogic Weblogic 12 has recently been Java EE 7 certified. If Oracle still uses GlassFish as the Java EE reference implementation, its work and support goes into Weblogic. Both WildFly and EAP support the Full and the Web profile but there is no separate bundles, only one. ![]() It has been supporting Java EE 7 since version 8.x. WildFly is the community name for the JBoss application server. JBoss 7 EAP is based on WildFly, which is the community edition and evolves at a faster pace. Unfortunatelly JBoss 7 EAP is still not final at the time of writing this blog, so no commercial support at RedHat. It is optimized for production environment and also has a micro-service distribution called Payara Micro. Payara is the commercial support of GlassFish (so it also comes with a Full and Web profile). ![]() Oracle has dropped commercial support for GlassFish and Payara is now the supported version. Being the reference implementation, GlassFish 4.x implements both Java EE 7 and the Web Profile 7, that’s why you have two different bundles you can download. GlassFish 4 is the open source reference implementation for Java EE 7. Here I look at GlassFish, Payara, JBoss EAP, WildFly, Weblogic and Websphere Liberty. Not all the application servers support the Full profile. Full profile means that all the Java EE 7 specifications are supported. Java EE 7 comes with a Web profile and a Full profile. To calculate the memory footprint, I use JConsole and take two measures: memory used at server startup, and memory used after few seconds (after the GC calms down a bit). That’s why I trigger the web admin console (when there’s one) so I’m sure at least one web application is deployed. Also remember that some servers do not load any container at startup, making them very fast to start. I just start the server a few times, check the logs to see how long it takes and use the best startup time. To calculate the startup time, I don’t do any fancy rocket science either. No optimization at all is made (I haven’t twisted the JVM, or any application server parameter… everything comes out of the box). ![]() I’m doing all my tests on a Retina OS X (16 Gb or RAM, SSD), no Docker! I use JDK 1.8.0_66 (when it’s not bundled with the server). I do not deploy any application, I don’t do fancy twists to gain performance… I’m just concerned about the usability of an application server for a developer in 2016. The idea of this benchmark is to download a Java EE 7 application server, install it, start it, launch the admin console if any, and take some measures : size of download, ease of installation, size on disk once installed, startup time, memory usage. The main editors also have a Java EE 7 Web Profile implementation (GlassFish, Payara, Websphere) and some only implement the Web Profile such as Resin, Siwpas, or TomEE. Last but not least, the Servlet containers also run the Java EE 7 race as they implement Servlet 3.1, such as Jetty, Tomcat or Undertow. Jeus, from TmaxSoft and uCosminexus from Hitachi are still running the Java EE 7 race but are not as known as the other app servers. Websphere has now a Liberty and a Classic version. JBoss 7 EAP is still in Beta but WildFly (the community edition of JBoss AS) has been supporting Java EE 7 since version 8. You will have to look into Payara which is the supported version of GlassFish. Instead, Oracle is focusing on Weblogic which has Java EE 7 production support. GlassFish is still developped by Oracle and still is the Java EE reference implementation, but has no longer production support. ![]() Not sure about JonAS but it hasn’t been updated since. Geronimo is no longer supported and will not run the race of Java EE 7. State of Java EE Application Serversīefore diving into each implementation, let’s quickly see what happened in the application server land in these last 3 years. So let’s see where we are in terms of Java EE 7 implementations and production support. The idea is to do some “benchmarking”(basically, startup time, disk and memory usage) on application servers implementing Java EE 7. Java EE 7 came out in may 2013 and we have now many application servers that have passed the TCK. Damn, I’ve been waiting so long to publish this blog (which is the successor of the same post on Java EE 6 app servers).
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |