Performance
From DocForge
Performance, in computing terms, is generally the speed at which a system can perform tasks. Performance can be measured subjectively by user perception or objectively with metrics.
Optimizing Performance [edit]
With computer systems comprising many different hardware and software components, there are many factors that affect overall performance. Metrics can be gathered to determine the slowest or most intensive sub-tasks. With this information bottlenecks can be found and analyzed, then improved or bypassed.
Software Performance [edit]
There are general best practices which help improve software performance.
- Avoid highly repetitive tasks. Cache data which is time consuming to compute rather than computing it repeatedly. For example,
- A web application may cache some pages or parts of web pages rather than generate them dynamically on each request when the results will be identical.
- Cache relational database query results in memory if the query is "expensive" and will yield the same results each time. Some databases, such as MySQL, have this feature integrated.
- Avoid using the slowest hardware components where possible. For example, hard disk I/O is always far slower than memory, so retain short-term data in memory when possible. This leads to a common hardware-based performance improvement: increased RAM.
- Fail elegantly and avoid stalling on a bottleneck when possible. For example,
- Assume that network connections may disappear at any time so a user won't be forced to wait indefinitely if network data is unavailable.
- Implement short but reasonable timeouts which automatically expire if a resource does not respond.
- Build on top of frameworks and libraries which have already been tuned for performance.

