Tohle do jisté míry platí na desktopu a na smartphonech. Ale tady se bavíme o embedded a průmyslových aplikacích, kde je situace dost odlišná. Navíc u těch příkladů nešlo o žádnou optimalizaci na krev. Tam šlo o to, jestli to píše někdo, kdo používá hlavu, nebo blbec.
..
Kdyby se posčítal zbytečně promrhaný výkon na všech zařízeních, na nichž ten neefektivní SW pracuje, tak bychom dost pravděpodobně zjistili, že ušetřený čas vývojářů nás vyšel zatraceně draho.
Embedded zahrnuje masově vyráběné jednorázové hračky i kusovou výrobu pro konkrétní speciální případ (třeba satelity). Nemůžete obojí hodit do stejného pytle, protože ty firmy optimalizují na úplně jiné metriky.
Můžete optimalizovat na určitou kombinaci
čas do nasazení - rychle něco vyrobit a získat trh, optimalizace se dělají dodatečně nebo vůbec, trošku vyšší cena hardware může být bohatě kompenzována náskokem před konkurencí.
cena podpory - optimalizace se opět dělají málo nebo vůbec, protože požadavky zákazníka se často mění a je potřeba umět rychle reagovat, proto je dneska většina věcí software-defined-něco. Software se upgraduje snáz, než hardware.
Oproti tomu můžete taky optimalizovat na druhý protipól
náklady na vývoj - absolutně co nejnižší cena za kus - levné cpu, levný vývoj, protože spotřební elektronika a nulová podpora
Ani jedno z toho nevyžaduje optimalizaci a super schopného génia, který zná všechny kličky.
Dokonale spolehlivý software je potřeba pro místa, kde se nedá dělat servis nebo musíte garantovat dekádu provozu bez problémů a certifikace. Letectví, vesmír, lékařství... o trošku méně automotive, možná těžaři a nebezpečné průmyslové provozy.
Ale pořád to nemusí být optimalizovaný software, naopak, může být výhodnější napsat jednodušší software (super loop s minimem podmínek) a "matematicky" dokázat jeho spolehlivost než ladit každou ztracenou mikrosekundu nebo pár byte paměti (za spolehlivost se platí a dražší čip se už v té ceně ztratí).
Když děláme real time, tak průmysl ani nepotřebuje lepší RTT, než zhruba milisekundu. Telekomunikace jsou horší, ti chtějí max desítky mikrosekund.
Absolutní optimalizaci dělají tak možná filmová a herní studia, která potřebují nacpat novou hru s lepšími efekty na existující hardware nebo konzoli. Případně ten film vyrenderovat dřív než lidi ztratí zájem. A i ti si ten 3D engine koupí a dodělají detaily, protože je to levnější.
Takže ne, optimalizace výkonu a zabraného místa dávno není prioritou, pokud nejsou speciální požadavky. Typicky je mnohem důležitější cena vývoje (včetně platu vývojářů), čas pro nasazení a efektivita podpory a oprav na místě.