Věda | Programování | Paměti

Mesh: efektivní „defragmentace“ paměti může snížit nároky aplikací až o desítky procent

  • Vědci vytvořili nový systém optimalizace operační paměti
  • Mesh umožňuje „defragmentovat“ paměť a uvolnit místo
  • Stejným aplikacím tak stačí i o desítky procent méně operační paměti

Vědci z College of Information and Computer Science (CICS) vytvořili nový systém správy operační paměti Mesh, který dokáže optimalizovat místo, jež aplikace v danou chvíli používají. Díky tomu lze kapacitu operační paměti ušetřit a spustit více aplikací, nebo naopak provozovat náročnější úlohy při stejné kapacitě paměti.

Operační paměť a její kapacita hraje stále důležitou roli jak u běžných počítačů, tak i u mobilních zařízení. Vývojáři už dnes tolik neoptimalizují jako dříve, kdy měli pár kilobajtů paměti a tak jsou dnešní aplikace doslova „nenažrané“, i když jde o jednoduché věci typu kalkulačka, počasí a podobně.

Mezi největší „žrouty“ operační paměti při běžném použití dnes patří určitě internetové prohlížeče, u kterých jsme zvyklí mít otevřeno spoustu záložek. Není problém se tak dostat velmi snadno na několik gigabajtů operační paměti, ve které běží pouze webové stránky internetového prohlížeče.

Vědci se ale pokouší opět trochu vrátit k optimalizaci a dosáhnout lepšího využití kapacity operační paměti.

Mesh: speciální optimalizace pro aplikace

Systém Mesh je určený jak pro použití u desktopových počítačů, tak i mobilních zařízení nebo dokonce datacenter. Jeho primárním cílem je optimalizace využití paměti aplikacemi, které jsou napsané v jazycích C, C++ nebo Objective-C.

Mesh funguje na principu optimalizace fragmentované paměti, dalo by se tedy zjednoduše říci, že dělá defragmentaci operační paměti, ale na úrovni „fyzické“ paměti, zatímco aplikace běží v rámci virtuální paměti.

Snímek obrazovky 2019-09-22 v 19.23.43.jpg
Využití operační paměti - před a se systémem Mesh

Aplikace napsané ve zmíněných jazycích často trpí problémem paměťové fragmentace. Dle vyjádření to pak vypadá tak, že struktura využití paměti spíše vypadá jako nepovedená stavba ze hry Tetris, kdy je součástí struktury spousty prázdných bloků, které jsou zbytečně nevyužité a nemůže k nim přistupovat žádná jiná aplikace. Mesh řeší to, aby se zbytečné nevyužité části paměti přeměnily na volnou paměť.

Velká úspora

Tato reorganizace paměti samozřejmě není jednoduchá a proto museli vědci vymyslet i nové algoritmy, které dokážou paměť efektivně a rychle přeskládat. Výsledkem jsou ale výrazné úspory dříve zbytečně obsazené kapacitě operační paměti.

Například u prohlížeče Firefox se jim u současné verze systému Mesh podařilo snížit paměťovou náročnost o 16 % a v případě Redisu pak dokonce až o 39 %. Vzhledem k tomu že obě aplikace mohou zabírat gigabajty kapacity operační paměti, jedná se o opravdu výraznou optimalizaci.

Snímek obrazovky 2019-09-22 v 19.24.51.jpgSnímek obrazovky 2019-09-22 v 19.24.46.jpgSnímek obrazovky 2019-09-22 v 19.24.37.jpg
Srovnání využití operační paměti bez a se systémem Mesh v různých aplikacích

Výhodou je, že samotná „defragmentace“, kterou Mesh provádí, nijak neovlivňuje běžící aplikace, pro které se nic nemění, protože pracují s virtuální pamětí. Projekt je open source, takže ho lze použít pro libovolné aplikace.

Pokrok po 50 letech

Vědci prezentují Mesh jako zázrak, o kterém si všichni mysleli, že není realizovatelný. Nyní je však tento systém hotový nejen po teoretické stránce, ale i po stránce implementace potřebných algoritmů.

Dle vyjádření se jedná o řešení problému, který v počítačové oblasti přetrvával více než 50 let a ovlivní tak budoucnost programovacích systémů. Vědci mají v nejbližším plánu přidat podporu aplikací napsaných v jazycích Go a Rust.

Diskuze (35) Další článek: NASA ukázala, jak postupuje stavba rakety SLS, která dostane člověka zpět na Měsíc

Témata článku: , , , , , , , , , , , , , , , , , , , , , , ,