Jo, řezy i mapy jsou fajn, ale člověk musí tušit, jak to funguje interně.
Zrovna letos jsem řešil jeden performance problém s mapami. Ony sice teoreticky mají krásnou časovou složitost, ale interně jsou mapy hodně složité a musel jsem se pohrabat v assembleru a zjistit, proč máme hrozné memory peaky a celý start servicy se prodloužil o cca 20 sekund (což už je dost).
Tedy nakonec to byla trivka - developer mi neuváděl kapacitu mapy při její konstrukci i když počet prvků byl známý. Potom interní realokace bloků to naprosto zabily; byla z toho taková Java servica s 200MB paměti na pod a ne 50MB :-)