// Optimalizace legacy systémů

Zpomaluje vás vlastní systém?
Zrychlíme ho.

Pomalý .NET systém není přirozený stav věcí. Profilujeme, najdeme skutečný bottleneck a opravíme ho — bez riskantního přepisování od nuly.

Popsat co je pomalé Velká česká banka: generování smluv z 2 hodin na 3 minuty. CPU z 95 % na 15 %.
// Co brzdí

Tři mýty o pomalých systémech

Většina legacy výkonu se dá zachránit. Otázka je kde přesně a jak — ne jestli.

Systém drhne, když dat přibývá

Algoritmus který fungoval na tisíci záznamech se zadrhl na milionu. Lineární vyhledávání v kolekci, O(n²) smyčky, chybějící indexy — přesně tohle profilér ukáže za minuty.

„Je to legacy, nedá se zrychlit"

Dá. Většina výkonnostních problémů sedí na pár místech: špatná datová struktura, chybějící cache, jeden SQL dotaz který tahá celou tabulku. Ty se opravit dají.

Přepsat = jediná cesta

Přepis od nuly trvá roky, stojí víc a většinou přenese původní problémy do nového kódu. Nejdřív hledáme kde opravit — přepis doporučíme jen když to opravdu dává smysl.

// Jak to děláme

Šest kroků ke skutečnému výkonu

Nejdřív data, pak kód. Každé rozhodnutí stojí na naměřených číslech, ne na odhadu.

01

Najdeme skutečný bottleneck

Profiling (dotnet-trace, PerfView, SQL Profiler) ukáže kde čas skutečně mizí. Bez dat neopravujeme nic — jinak jen přesuneme problém.

02

Správné datové struktury

HashSet místo Listu pro O(1) lookup, Dictionary pro opakované vyhledávání podle klíče. Jedna změna struktury může znamenat 10× rychlejší průchod miliony záznamů.

03

Caching (Redis, in-memory)

Co se nemění každý request, nemusí se počítat každý request. Redis nebo in-memory cache na správném místě eliminuje zbytečnou zátěž databáze i CPU.

04

Optimalizace SQL a indexy

N+1 dotazy, chybějící indexy, SELECT * přes miliony řádků — SQL Profiler je odhalí a my je opravíme. Atlas Copco: z 15 000 na 3 000 řádků SQL.

05

Batch processing a event-driven refaktor

Zpracování záznamů po jednom v cyklu nahradíme batch operacemi nebo asynchronním event-driven přístupem. Výsledek: zlomek původního CPU a wall time.

06

Opravujeme příčinu, ne symptom

Hotfix na vrcholu špatného algoritmu není oprava. Refaktorujeme tam kde problém skutečně sedí — s testy které ověří, že jsme nic nerozbili.

// Důkaz

Reálná čísla z produkce

Velká česká banka: generování smluv procházelo miliony záznamů s lineárním vyhledáváním v kolekcích. Nahradili jsme Listy za HashSet/Dictionary a přidali batch processing. Výsledek: z 2+ hodin na 3 minuty (40×), CPU z 95 % na 15 %. Atlas Copco: SAP pipeline zkrácena z 15 000 na 3 000 řádků SQL, přechod na event-driven přístup — ~80 % méně kódu, stejná business logika.

40× rychlejší generování smluv
95%→15% snížení CPU (česká banka)
80% méně kódu (Atlas Copco)
Přečíst case studies
// FAQ

Časté otázky k optimalizaci

// Kontakt

Víte co je pomalé.
My víme proč — a jak to opravit.

Napište nám co konkrétně drhne — jaký systém, jaká operace, jaká čísla vidíte. Odpovíme do 24 hodin s odhadem co jsme schopni udělat.

Popsat co je pomalé