DynaTrace in Top 10 Performance Problems taken from Zappos, Monster, Thomson and Co, has provided a useful compilation of performance problems, with potential solutions, that they've found while working with their clients. 

  1. Too Many Database Calls -  too many database query per request/transaction.
  2. Synchronized to Death - in a high-load or production environment over-synchronization results in severe performance and scalability problems.
  3. Too chatty on the remoting channels - too many calls across these remoting boundaries and in the end causes performance and scalability problems.
  4. Wrong usage of O/R-Mappers - incorrect usage of the framework itself too often results in unexpected performance and scalability problems within these frameworks.
  5. Memory Leaks - GC does not prevent memory leaks, it is important to release object references as soon as they are no longer needed.