Domain-Driven Type Safety se potkává s rychlostí: Jak Project Valhalla mění hru

Domain-Driven Type Safety se potkává s rychlostí: Jak Project Valhalla mění hru

Kvě 19, 2026 java project valhalla value classes domain-driven design performance optimization type safety cloud development

Valhalla mění pravidla: Typová bezpečnost bez ztráty výkonu

Když se snažíte v Javě navrhovat systémy podle domény, narazíte na klasický problém. Chcete mít typ PositiveInt, který nikdy nepřipustí zápornou hodnotu. Kompilátor by měl takové chyby zachytit hned. Jenže jakmile přijdete k hot pathu, kde se zpracovávají miliony událostí, začnou vás tyto bezpečné obálky brzdit. Každá zabírá 16 bajtů, vytváří se na haldě a způsobuje zbytečné výpadky v cache.

Vývojáři si proto zvykli na kompromis. Na hranicích systému používali přesnější typy, ale uvnitř výkonově kritických částí přecházeli na primitiva.

Project Valhalla tento kompromis ruší.

Proč klasické obálky stojí tolik

Uvažujme jednoduchý wrapper PositiveInt, který obsahuje jedno int. Na HotSpotu zabírá 16 bajtů – 12 bajtů hlavička objektu a 4 bajty samotná hodnota. Když milion takových objektů uložíte do pole, pole neuchovává hodnoty přímo, ale jen odkazy na objekty na haldě. Každý př<|eos|>

Read in other languages:

RU BG EL UZ TR SV FI RO PT PL NB NL HU IT FR ES DE DA ZH-HANS EN