DynaTrace's Top 10 Performance Problems taken from Zappos, Monster, Thomson and Co
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.
- Too Many Database Calls - too many database query per request/transaction.
- Synchronized to Death - in a high-load or production environment over-synchronization results in severe performance and scalability problems.
- Too chatty on the remoting channels - too many calls across these remoting boundaries and in the end causes performance and scalability problems.
- Wrong usage of O/R-Mappers - incorrect usage of the framework itself too often results in unexpected performance and scalability problems within these frameworks.
- Memory Leaks - GC does not prevent memory leaks, it is important to release object references as soon as they are no longer needed.
- Problematic 3rd Party Code/Components - check of every framework before introducing it into your code.
- Wasteful handling of scarce resources - Resources such as memory, CPU, I/O or the database are scarce. Wasteful handling of these resources results in lack of access to these resources by others and ultimately leads to performance and scalability issues.
- Bloated web frontends - many applications get packed with too much stuff.
- Wrong Cache Strategy leads to excessive Garbage Collection - Before implementing a caching strategy you have to figure out which objects to cache and which objects not to cache.
- Intermittent Problems - Intermittent problems are hard to find. These are usually problems that occur with specific input parameters or only happen under certain load conditions.
- (Bonus Problem) Expensive Serialization. Different types of serialization have a different impact on performance, scalability, memory usage and network traffic.