Um dos diferenciais de um servidor de aplicações, em comparação com um servlet container, é que o servidor de aplicações também possui um EJB container, no qual todo session bean será instanciado.
Seguindo esse princípio, de imediato já podemos entender utilizar um servidor de aplicações resultará em um consumo maior de memória, em comparação com a utilização de um servlet container.
Em termos práticos, ao utilizar apenas um servlet container com CDI, um service não precisaria ser um EJB, e assim não precisaria ser instanciado pelo EJB container.
Em aplicações pequenas, e com poucos usuários, talvez a diferença de performance não seja muito percebida. Porém, ao mudarmos o cenário para um ERP com algo em torno de 150 DAOs, e cada DAO possuindo um respectivo Service, então temos 300 classes sendo classificadas como session beans, e necessitando serem instanciadas também pelo EJB container.
Levando-se em consideração esse cenário, e levando-se em consideração que o garbage collector tem uma certa demora para liberar instâncias não utilizadas da memória, o que se pode fazer para economizar mais memória ao utilizar o WildFly?