Čínský koeficient

Každý asi zná pojem bulharská konstanta. Je to číslo, kterým se vynásobí nějaký údaj, aby vyšlo to co chceme. Bulharská konstanta tedy vlastně žádnou pořádnou konstatnou není, mělo by se jí spíše říkat bulharská proměnná. Nechme ji raději politikům, ekonomům a panelovým klimatologům.

Čínský koeficient je něco, s čím se naopak  v praxi můžeme setkat velmi často. Jedná se o překvapivě velký výsledek výpočtu s velmi malým vstupem. Název čínský koeficient vychází z počtu lidí (aktuálně 1.3 mld.; skvělé video na téma, kolik je vlastně miliarda) této země a tedy jakkoliv malý zlomek obyvatel vynásobený celkovým počtem obyvatel vychází jako neuvěřitelně vysoké číslo.

Nedávno jsem řešil požadavek jednoho kolegy, stěžoval si, že jistá operace je velmi pomalá a že rozhodně není interaktivní. A opravdu, časy kolem 20 minut určitě k pohodlnosti nepřidají. Pátrali jsme pátrali. Zjistili jsme, že ona operace probíhá nad poměrně velkým počtem souborů (čínský faktor), přičemž jeden soubor se zpracuje za očekávatelných 20ms (toto je onen nepatrný vstup, jedná se o seek time pomalého pevného disku). 20 minut / 20 ms = 60’000. Nepatrný čas jedné operace byl převálcován velkým počtem operací.

Toto téma mě napadlo při hraní Minecraftu. Pomocí pluginu WorldEdit si můžete snadno hrací prostor upravovat k obrazu svému. Velikost objemu prostoru roste s třetí mocninou délky hrany. Ve hře tak stačí poodejít o pár kroků dál a náhle místo očekávaných několika málo kostiček musí WorldEdit přetvořit několik set tisíc. A když je to zrovna dynamit… :-D tak i rozumně velké množstí operační paměti serveru může být vlastně velmi, velmi malé.

Příspěvek byl publikován v rubrice Názory. Můžete si uložit jeho odkaz mezi své oblíbené záložky.