Veri odaklı tasarım - Data-oriented design
Bilgi işlemde , veri odaklı tasarım , video oyunu geliştirmede kullanılan CPU önbelleğinin verimli kullanımıyla motive edilen bir program optimizasyon yaklaşımıdır . Yaklaşım, veri düzenine odaklanmak, alanları ihtiyaç duyulduğu zamana göre ayırmak ve sıralamak ve verilerin dönüşümlerini düşünmektir. Destekleyenler arasında Mike Acton, Scott Meyers ve Jonathan Blow bulunmaktadır .
Paralel dizi (ya da dizilerin yapı ) veri odaklı tasarım ana örnektir. Nesne yönelimli tasarımların tipik yapı dizileriyle çelişir .
motifler
Bu yöntemler, 2000'li yılların ortalarından sonlarına kadar , IBM PowerPC tabanlı PlayStation 3 (PS3) ve Xbox 360 konsollarını içeren yedinci nesil video oyun konsolları sırasında özellikle popüler hale geldi . Tarihsel olarak, oyun konsolları , en üst düzey masaüstü bilgisayar muadillerine kıyasla genellikle nispeten zayıf merkezi işlem birimlerine (CPU'lar) sahiptir. Bu, daha fazla güç ve ayırmaya bir tasarım seçimdir transistör bütçesini için üniteler işlenirken grafik (GPU'ları). Örneğin, 7. nesil CPU'lar, modern sıra dışı yürütme işlemcileriyle üretilmemiştir , bunun yerine yüksek saat hızlarına ve derin işlem hatlarına sahip sıralı işlemciler kullanır . Ek olarak, çoğu bilgi işlem sistemi türü , işleme elemanlarından yüzlerce saat döngüsü uzakta bulunan ana belleğe sahiptir . Ayrıca, ana bellek kapasitesindeki büyük artışın yanı sıra CPU'lar daha hızlı hale geldikçe , Von Neumann darboğazı olarak da bilinen , paylaşılan veri yolunda önbellek kayıpları olasılığını artıran büyük veri tüketimi vardır . Sonuç olarak, performansı kontrol etmek için referans yöntemlerinin yeri kullanılmıştır ve darboğazı düzeltmek için bellek erişim modellerinin geliştirilmesini gerektirir . Yazılım sorunları bazıları da karşılaştığımız edilenlere benzerdi Itanium gerektiren döngü sarılmasını peşin zamanlama için.
Nesne yönelimi ile kontrast
İddia, geleneksel nesne yönelimli programlama (OOP) tasarım ilkelerinin zayıf veri yerelliği ile sonuçlanmasıdır, daha çok çalışma zamanı polimorfizmi ( dinamik gönderme ) kullanılıyorsa (ki bu özellikle bazı işlemcilerde sorunludur). OOP, "veri çevresinde kodu organize ediyor" gibi görünse de, belirli işlevler tarafından erişim için tek tek alanları ve dizileri verimli bir biçimde fiziksel olarak gruplamak yerine, kaynak kodunu veri türleri etrafında düzenler . Ayrıca, veri odaklı bir programcı her şeyden önce bunu dikkate almak isterken, düzen ayrıntılarını soyutlama katmanları altında gizler .
Ayrıca bakınız
- CPU önbelleği
- Veriye dayalı programlama
- Varlık bileşen sistemi
- Bellek erişim düzeni
- Birlik NOKTALARI
- video oyunu geliştirme