Hi,
Liferay has many ways it can be tuned. It's hard to say exactly what might have affected your particular installations. From a code standpoint, if you're deploying Liferay into a situation where performance is key, out of the gate, EE will perform faster than CE. Liferay implements new features, puts them into CE, gives them bug fixes, and then performance optimizes them for EE. So generally, every new CE release gets the performance optimizations from the previous release, but not the ones for the current release.
I did a presentation on this several Liferay symposiums back; I'll give you the main points from that presentation:
1. Adjust the server's
thread pool and
JDBC connection pool. You have to use a profiler and tune to the right number.
2. Turn off unused
servlet filters. This can be done through the portal-ext.properties file.
3. Tune your JVM parameters. Again, you need a profiler for this.
4. Tune Liferay's cache. If your site makes heavy use of CMS objects, but not so much wiki objects, you will want to tune the CMS cache appropriately.
5. Change the Lucene index writer interval. If you're doing mostly reads, make it low. If you're doing mostly writes make it high.
6. If search is a big part of your site, offload it with Solr, and use the Solr plugin.
7. Optimize the counter increment (counter.increment in portal-ext.properties). Set it to a higher number to reduce database calls.
8. Use a CDN for static content (cdn.host).
9. If you can't use a CDN, use a web server to serve your static resources. This is done via three steps: 1) set theme.virtual.path to your Apache root, 2) Set the <virtual-path> property in your theme, and 3) Set your server proxy to exclude from the proxy the path to the theme.
10. Use Liferay's tag libraries for your code. They already include optimizations, such as the auto-creation of CSS/JS sprites for your images.
11. Use a Read-writer database. This is one database optimized for reads, and one database optimized for writes. Properties are jdbc.read.* and jdbc.write.*.
12. Use Liferay's sharding support.
Hope this helps!
--Rich