Introduction
Jak jsem tam kódil semestrálku, tak jsem se nechal tak trochu unést optimalizacemi. Může za to zejména Dijkstrův algoritmus, který mě značně itritoval svou pomalostí a paměťovou žravostí.
Datové typy
Pokud se jedná o projekt, který pracuje s velkým množstvím dat, jako je naše semestrálka, tak už přestává platit pravidlo: integry to jistí :). Integer zabírá v paměti 4 bajty, což na první pohled jistě každému přijde málo. Když se ale tohle číslo vynásobí 2000 vrcholy a 2000000 hranamy, kde každý vrchol má, dejme tomu, jeden atribut index typu int a hrana má tři atributy from, to, weight téhož typu, tak už vylézá na povrh nepříjemný fakt, že int je sakra velký datový typ :) Vynásobením 2000*4 + 200000*4*3 nám vyjde magické číslo 2408000 což dělá cca 2,3 MB.
Toto číslo, ale můžeme snadno zmenšit, a to použitím typu short místo int, kde je to možné. Short je pouze 2 bajtový, tzn. vyjde nám pak poloviční hodnota - 1,15 MB, což se už tváří symptičtěji :) Zejména se to promítna na výslednou velikost souboru, tedy, pokud jsou data ukládána binárně.
Kolekce
Java nabízí možnost snadné tvorby dynamických polí. Tyto jsou reprezentovány třídami, které implementují rozhraní Collection či List. Jako nejtypičtější dynamické pole je možné použít například ArrayList. Ovšem podle zkušeností je vhodnější použít třídu Vector, která je rychlejší.
Nothing interesting :)
Add your content here. Format your content with:
- Text in bold or italic
- Headings, paragraphs, and lists
- Automatic links to other wiki pages