- efficiency - optimal utilization of resources
- speed - how quick program executes
- latency - execution time per unit number of instructions on the CPU
- throughput - number of instructions per second
- only a small portion of code causes performance issues
- performance enhancements rely on data and CPU -> test should be done first
- compiler generates - different assemply instructions for different data types