Web app performance depends on many factors: app layer (how well the app is designed), proxy layer (is apache caching enabled), load layer (how many concurrent users are hitting the app), network layer (how much traffic is the server exchanging with client for each request, and what is available bandwidth). With all these in mind, I would propose trying different things, like using ab performance test tool in apache locally and remotely, use a client side free proxy like fiddler, which can time the requests and responses and see if the requests are gzipped or not, etc.
Saying the app requires 16GB to run is abnormal, after all apache is not an application server like tomcat or weblogic or webspehere, so the apps should not use a large amount of memory, unless there's something buggy in the app. What could consume so much memory as well is the number of child threads that apache is having to run, and this is controlled with tuning, that needs to be investigated. I cannot promise to solve the problem, if it's not apache related, but for sure, I will tell you where the bottle neck is to take the appropriate action