Application Performance
Depending on your problem domain, performance could be impacted by any number issues. As someone who primarily works in the web service layer, making frequent calls out to databases and third-party APIs, I’ve found that bottlenecks in these I/O-bound processes will be orders of magnitude more detrimental and noticeable than problems lower in the stack.
However, it’s important to note that improvements to I/O performance can end up sending more load to the CPU and exposing dormant issues elsewhere.
Generally I’ve found that performance is impacted as a result of one or more of the following factors:
- High-level application architecture and design
- Algorithmic complexity
- Database schema and query design
- Application cache hit ratio
- Networking
- Memory and swap thrashing
- Concurrency patterns
- OS threading and multiprocessing
- CPU cache hit ratio
- (…and rarely) choice of programming language