Things come pretty well optimized, and we try and start with heap sizes and settings that are appropriate. Some things to take a look at to increase your performance:

Turn off auto-deploy in production (Tomcat). Deploy on start up will still be enabled. With auto-deploy enabled every few minutes your application server will scan all of the application directories. Depending on how large they are or how many small files you have that can make a difference especially over a networked file system. In conf/server.xml set autoDeploy="false" for the Host(s) defined. The default is autoDeploy="true". Note: Tomcat will need restarted after any server.xml change.

Turn off debug level logging in production. This is true of any of the Java application servers but particularly so with many version of Jboss.

A lot of folks with dedicated solutions run behind something like Apache when they don't need to. If your application is all Java then you probably don't need it and the proxy pass can cost you 20ms per request. **note use jsvc, or tcp proxy to avoid running as root if your application server does not drop privileges.