Ma'lumotlarga yo'naltirilgan dizayn - Data-oriented design

Yilda hisoblash, ma'lumotlarga yo'naltirilgan dizayn a dasturni optimallashtirish dan samarali foydalanishga asoslangan yondashuv CPU keshi, ishlatilgan video O'YIN rivojlanish.[1] Yondashuv ma'lumotlar maketiga, ajratish va saralashga e'tiborni qaratadi dalalar kerak bo'lganda va ma'lumotlarning o'zgarishi haqida o'ylash. Himoyachilar orasida Mayk Acton ham bor[2] va Skott Meyers.[3]

Motivlar

Ushbu usullar, ayniqsa, 2000-yillarning o'rtalari va oxirlarida ommalashgan video o'yin konsollarining ettinchi avlodi shu jumladan IBM PowerPC asoslangan PlayStation 3 (PS3) va Xbox 360 konsollar. Tarixiy jihatdan, o'yin konsollari ko'pincha nisbatan zaiflarga ega markaziy protsessorlar (CPU) yuqori darajadagi stol kompyuterlari bilan taqqoslaganda. Bu ko'proq kuch sarflash uchun dizayn tanlovidir tranzistorli byudjet uchun grafik ishlov berish birliklari (GPU). Masalan, 7-avlod protsessorlari zamonaviy ishlab chiqarilmagan buyurtmadan tashqari ijro protsessorlar, lekin buning o'rniga foydalaning buyurtma qilingan protsessorlar yuqori soat tezligi va chuqurligi bilan quvurlar. Bundan tashqari, hisoblash tizimlarining aksariyat turlari mavjud asosiy xotira yuzlab soat tsikllari dan uzoqda ishlov berish elementlari. Bundan tashqari, protsessorlar asosiy xotira hajmining ko'payishi bilan birga tezlashib borganligi sababli, ma'lumotlarning katta iste'moli mavjud bo'lib, ular keshni o'tkazib yuboradi ichida umumiy avtobus, aks holda nomi bilan tanilgan Fon Neymanning tiqilib qolishi. Binobarin, ma'lumotlarning joylashuvi takomillashtirishni talab qiladigan ishlashni boshqarish uchun usullardan foydalanilgan xotiraga kirish naqshlari tiqilib qolishni to'g'irlash. Dasturiy ta'minot bilan bog'liq ba'zi muammolar, shuningdek, duch kelgan muammolarga o'xshash edi Itanium, talab qiladi tsiklni echish oldindan rejalashtirish uchun.

Ob'ekt yo'nalishi bilan qarama-qarshilik

Da'vo an'anaviy ob'ektga yo'naltirilgan dasturlash (OOP) dizayn tamoyillari ma'lumotlarning yomon joylashishiga olib keladi, shuning uchun ish vaqti polimorfizmi (dinamik jo'natish ) ishlatiladi (bu ayniqsa ba'zi protsessorlarda muammoli).[4][5] Garchi OOP "ma'lumotlar atrofida kodni tartibga soladigan" ko'rinishga ega bo'lsa-da, amaliyot butunlay boshqacha. OOP aslida tashkil qilish bilan bog'liq manba kodi atrofida ma'lumotlar turlari jismoniy funktsiyalar bo'yicha kirish uchun samarali maydonda individual maydonlar va massivlarni jismoniy guruhlash o'rniga. Bundan tashqari, u ko'pincha tartib detallarini ostida yashiradi abstraktsiya qatlamlari, ma'lumotlarga yo'naltirilgan dasturchi buni birinchi navbatda ko'rib chiqishni xohlaydi.

Shuningdek qarang

Adabiyotlar

  1. ^ Llopis, Noel (2009 yil 4-dekabr). "Ma'lumotlarga asoslangan dizayn". Ma'lumotlarga asoslangan dizayn (Yoki nima uchun siz OOP bilan o'zingizni oyoqqa otishingiz kerak). Olingan 17 aprel, 2020.
  2. ^ "CppCon 2014: Mayk Acton" Ma'lumotlarga asoslangan dizayn va C ++"".
  3. ^ "code :: sho'ng'in konferentsiyasi 2014 - Skott Meyers: CPU keshlari va nega sizga g'amxo'rlik qilish".
  4. ^ "Ob'ektga yo'naltirilgan dizayni bilan nima yomon? Undagi zarari qayerda?".virtual funktsiya qo'ng'iroqlari bilan bog'liq muammolarni tasvirlaydi, masalan, i-keshni o'tkazib yuborish
  5. ^ "Ma'lumotlarga asoslangan dizayn - nima uchun siz OOP bilan oyoqqa o'q uzishingiz mumkin".