Основные компромиссы при оптимизации программного обеспечения заключаются в том, что улучшение одного показателя происходит за счёт другого. 1
Один из примеров — компромисс между пространством и временем: сокращение времени выполнения программы за счёт увеличения потребления памяти. 1 В других случаях в сценариях, где память ограничена, инженеры могут предпочесть более медленный алгоритм для экономии места. 1
Ещё один пример — увеличение размера кэша, которое повышает производительность во время выполнения, но также увеличивает потребление памяти. 13
Другие распространённые компромиссы включают ясность и лаконичность кода: полностью оптимизированная программа может быть более сложной для понимания и содержать больше ошибок, чем неоптимизированные версии. 1 Также некоторые оптимизации на уровне кода снижают ремонтопригодность. 1