Datově orientovaný design - Data-oriented design
tento článek potřebuje další citace pro ověření.Červenec 2020) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
v výpočetní, datově orientovaný design je optimalizace programu přístup motivovaný efektivním využíváním Mezipaměť CPU, použito v video hra rozvoj.[1] Přístup je zaměřit se na rozložení dat, jejich oddělení a třídění pole podle toho, kdy jsou potřeba, a přemýšlet o transformacích dat. Zastánci jsou Mike Acton[2] a Scott Meyers.[3]
Motivy
Tyto metody se staly obzvláště populární v období od poloviny do konce 2000 sedmá generace herních konzolí který zahrnoval IBM PowerPC na základě PlayStation 3 (PS3) a Xbox 360 konzoly. Historicky, herní konzole často mají relativně slabé centrální procesorové jednotky (CPU) ve srovnání se špičkovými protějšky stolních počítačů. Toto je návrhová volba věnovat více síly a tranzistorový rozpočet do jednotky grafického zpracování (GPU). Například procesory 7. generace nebyly vyráběny moderně provedení mimo objednávku procesory, ale místo toho použít in-order procesory s vysokými rychlostmi hodin a hlubokými potrubí. Kromě toho má většina typů výpočetních systémů hlavní paměť nachází stovky hodinové cykly daleko od prvky zpracování. Kromě toho, jak se procesory zrychlily spolu s velkým nárůstem kapacity hlavní paměti, existuje obrovská spotřeba dat, která zvyšuje pravděpodobnost chybí mezipaměť v sdílený autobus, jinak známý jako Von Neumann úzká hrdla. Tudíž, referenční lokalita k řízení výkonu byly použity metody vyžadující zlepšení vzory přístupu do paměti opravit úzká místa. Některé problémy se softwarem byly podobné problémům, se kterými se setkaly na internetu Itanium vyžadující odvíjení smyčky pro předběžné plánování.
Kontrast s orientací objektu
Tvrzení je tradiční objektově orientované programování (OOP) principy návrhu mají za následek špatnou lokalitu dat, tím spíše, když runtime polymorfismus (dynamické odesílání ) (což je u některých procesorů obzvláště problematické).[4][5] Ačkoli se zdá, že OOP „organizuje kód kolem dat“, praxe je zcela odlišná. OOP je vlastně o organizování zdrojový kód kolem typy dat spíše než fyzické seskupování jednotlivých polí a polí v efektivním formátu pro přístup konkrétních funkcí. Navíc často skrývá podrobnosti rozvržení pod abstrakční vrstvy, zatímco programátor orientovaný na data to chce především zvážit.
Viz také
Reference
- ^ Llopis, Noel (4. prosince 2009). „Data-Oriented Design“. Datově orientovaný design (nebo proč byste se mohli střelit do nohy pomocí OOP). Citováno 17. dubna 2020.
- ^ „CppCon 2014: Mike Acton“ Data-Oriented Design a C ++"".
- ^ „code :: dive conference 2014 - Scott Meyers: Cpu Caches and Why You Care“.
- ^ „Co se děje s objektově orientovaným designem? Kde je v něm škoda?“.popisuje problémy s voláním virtuálních funkcí, např. chyb v i-cache
- ^ „Datově orientovaný design - proč byste se díky OOP mohli střílet do nohou“.