Hacker News

Maipapan iti presion ti memoria, panagsusupiat ti kandado, ken Data-oriented Design

Dagiti Komento

15 min read Via mnt.io

Mewayz Team

Editorial Team

Hacker News

Panangawat kadagiti Di Makita a Bottleneck: Memory ken Locks

Iti lubong ti software, ti panagaramid ket isu ti kuarta ti pannakapnek ti agar-aramat. Para kadagiti negosio nga agpannuray kadagiti komplikado nga aplikasion, dagiti nabannayat a sungbat ken panagyelo ti sistema ket saan laeng a makarimon; direkta a pangta dagitoy iti produktibidad ken kita. Masansan, dagiti ramut dagitoy nga isyu ti panagaramid ket saan a dagus a nalawag, nga aglemlemmeng iti uneg ti arkitektura ti software a mismo. Dua kadagiti kadawyan ken makadadael a nakabasol ket ti panangpilit iti memoria ken panagsusupiat iti kandado. Dagitoy a parikut ket masansan a naluto kadagiti tradisional, banag-a-naisentro a padron ti disenio a mangipangpangruna ti panagurnos ti kodigo para iti programmer ngem ti organisasion ti datos para iti makina. Tapno maibangon dagiti nangato ti panagaramidna, masukatan a sistema a kalikaguman dagiti moderno nga empresa, kasapulan ti panagbalbaliw ti paradigm. Ditoy a rummuar ti Data-oriented Design (DOD) a kas kritikal a pilosopia, maysa a mangitunos ti arkitektura ti software iti hardware a pagtarayanna tapno maikkat dagitoy a bottleneck sakbay a mangrugida.

Ti Nalimed a Panagguyod ti Presion ti Memoria

Iti kangrunaanna, ti presion ti memoria ket mangibagbaga ti panag-uyot a naikabil iti subsistema ti memoria ti maysa a sistema (dagiti cache ti RAM ken CPU). Nakaskasdaaw ti kapartak dagiti moderno a prosesor, ngem mangbusbosda iti dakkel a kaadu ti panawen nga agur-uray iti pannakaala ti datos manipud iti kangrunaan a memoria. Tapno mapalag-an daytoy, dagiti CPU ket agus-usar kadagiti babassit, ultra-napartak a banko ti memoria a maawagan kadagiti cache. No ti datos a kasapulan ti CPU ket addan iti cache (maysa a cache hit), napardas ti panagproseso. No saan (a cache miss), agsardeng ti CPU, nga agur-uray iti pannakaala ti datos. Mapasamak ti presion ti memoria no ti agtartrabaho a grupo ti datos ket dakkel unay wenno saan a nasayaat ti pannakaurnosna, a mangiturong iti kankanayon nga ayus dagiti pannakaliway ti cache. Iti gagangay a disenio a naipangpangruna iti banag, ti datos ket masansan a naiwarwaras kadagiti adu a saggaysa a naituding a banag. Ti panagulit babaen ti listaan ​​dagitoy a banag ket kayatna a sawen ti panagluksaw kadagiti agdumaduma a lokasion ti memoria, ti padron a makadidigra para iti kinaepisiente ti cache. Ti prefetcher ti CPU ket saan a makapakpakadaan kadagitoy a naiparparna a panagserrek, a mangibunga ti kankanayon a panagtaktak ken nakaro a nadadael a panagaramid.

No Mapaay ti Panagtitinnulong: Ti Problema ti Panagsusupiat ti Kandado

Kadagiti multi-threaded nga aplikasion, a sadiay dagiti adu nga aramid ket maipatungpal nga aggigiddan, dagiti agparparang-ay ket agus-usar kadagiti kandado (wenno dagiti mutex) tapno malapdan dagiti nadumaduma a thread manipud iti panangbalbaliw ti isu met laeng a datos nga aggigiddan, a mangiturong iti panagdadael. Tumaud ti panagsusupiat iti kandado no masansan a padasen ti adu a thread ti makagun-od iti isu met laeng a kandado. Imbes nga agtrabahoda nga aggigiddan, dagiti sinulid ket agngudo nga agur-uray iti linya para iti turnoda, a mangserial kadagiti operasion a nairanta nga aggigiddan. Daytoy ket pagbalinenna ti multi-core a sistema, a rumbeng a mangitukon ti nayon a throughput, a kas maysa a sistema a dagiti core ket awan aramidda, a nabara babaen ti software-a naipabaklay a traffic jam. Ti nalabes a panagsusuppiat ti kandado ket maysa a pakabigbigan dagiti arkitektura a sadiay ti naibingbingay, agbaliwbaliw a kasasaad ket kadawyan, ti sabali pay a masansan a pakabigbigan dagiti banag-a naipangpangruna a sistema a mangmodelo ti lubong a kas ti grapo dagiti agsisilpo a banag. Ti overhead ti panaggun-od ken panangiruar kadagiti kandado, a naitipon iti oras ti panagur-uray, ket mabalin a manggiling ti panagsukog ti maysa a sistema aginggana ti panagsardeng.

Disenyo a naipangpangruna iti datos: Panagarkitektura para iti Panagaramid

Ti Disenyo a naipangpangruna iti datos ket saan nga espesipiko a biblioteka wenno ramit, ngem maysa a batayan a panagbalbaliw ti panagpampanunot. Imbes a damagen ti "Ania dagiti banag iti sistemak?", saludsoden ti DOD "Ania dagiti panagbalbaliw a kasapulak nga aramiden iti datosko, ken kasano a mai-layout dayta a datos tapno agbalin dagita a panagbalbaliw a kas episiente agingga a mabalin?" Daytoy nga asitgan ket direkta a mangtaming kadagiti parikut ti presion ti memoria ken panagsusuppiat ti kandado babaen ti panangipangpangruna ti wagas a pannakagun-od ti datos iti memoria.

  • SoA ngem ti AoS: Pabor ti DOD ti Estruktura dagiti Array (SoA) ngem ti Array ti Estruktura (AoS). Imbes a ti maysa nga array dagiti banag ti `Player` (tunggal maysa ket addaan iti salun-at, ammo, ken posision), addaanka koma iti naisina nga array para kadagiti amin a pateg ti salun-at, sabali para kadagiti amin a bilang ti ammo, ken sabali para kadagiti amin a posision. Daytoy ket mangipalubos ti episiente, cache-friendly a panagproseso ti maymaysa a kababalin iti ballasiw dagiti amin nga entidad.
  • Cache-Conscious Iteration: Babaen ti panagurnos ti datos a linear iti memoria, ti DOD ket mangpabalin kadagiti agsasaruno a padron ti panagserrek a dagiti CPU ken dagiti prefetchersda ket pagay-ayatda, a dakkel a mangkissay kadagiti panagliway ti cache.
  • Panangpabassit ti Naibingbingay nga Estado: Ti DOD ket mangiparegta ti panagdisenio kadagiti sistema tapno dagiti thread ket makatrabaho kadagiti agwaywayas a pedaso ti datos a saan a kasapulan a makiranget para kadagiti kandado. Masansan a maragpat daytoy babaen ti panagbingbingay ti datos ken panagusar kadagiti tekniko a kas dagiti sistema ti trabaho nga agtigtignay kadagiti lokal a kopia ti datos.
Ti panggep ti Disenyo a naipangpangruna iti Datos ket ti panagaramid ti panagayus ti datos a kas episiente aginggana a mabalin, a mangtrato ti cache ti CPU a kas maysa a napateg a rekurso ken mangistruktura ti datos nga agbalin a naannayas, nalawa a haywey imbes a ti narikut a network dagiti akikid, agsikkosikko a kalsada.

Panagbangon iti Natibker a Pundasion a kadua ni Mewayz

Ti panangampon ti pilosopia ti Disenyo a naipangpangruna iti Datos manipud iti daga ket tulbek iti panagbangon kadagiti aplikasion ti negosio a saan laeng nga agtigtignay, ngem naisangsangayan a napardas ken maipadakkel. Daytoy ti kangrunaan a prinsipio iti likudan ti arkitektura ti Mewayz. Babaen ti panangdisenio iti modular a negosio nga OS-mi nga addaan iti panagayus ti datos ken kinaepisiente ti hardware kas kangrunaan a pakaseknan, pabassitenmi dagiti klasiko a silo ti panagaramid ti presion ti memoria ken panagsusupiat ti kandado sakbay a makaapektarda kadagiti panagpataraymo. Ti modular a kinatao ti Mewayz ket kayatna a sawen a tunggal maysa a paset ket nainheniero tapno episiente a mangasikaso ti datos, a mangsigurado a bayat a dumakkel ti negosiom ken umad-adu dagiti tomo ti datosmo, agtalinaed a makasungbat ti sistema. Daytoy a proaktibo a wagas ti panagaramid ket isu ti mangipalubos ti Mewayz a mangipaay ti awan ti panagdadait ken nabileg a pundasion para kadagiti komplikado, data-driven nga aramid a mangikeddeng ti moderno a negosio, a mangpabileg ti grupom nga agtrabaho a saan a mapabannayat babaen dagiti di makita a bottleneck ti saan a nasayaat ti pannakadiseniona a software.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

Dagiti Masansan a Saludsod

Panangawat kadagiti Di Makita a Bottleneck: Memory ken Locks

Iti lubong ti software, ti panagaramid ket isu ti kuarta ti pannakapnek ti agar-aramat. Para kadagiti negosio nga agpannuray kadagiti komplikado nga aplikasion, dagiti nabannayat a sungbat ken panagyelo ti sistema ket saan laeng a makarimon; direkta a pangta dagitoy iti produktibidad ken kita. Masansan, dagiti ramut dagitoy nga isyu ti panagaramid ket saan a dagus a nalawag, nga aglemlemmeng iti uneg ti arkitektura ti software a mismo. Dua kadagiti kadawyan ken makadadael a nakabasol ket ti panangpilit iti memoria ken panagsusupiat iti kandado. Dagitoy a parikut ket masansan a naluto kadagiti tradisional, banag-a-naisentro a padron ti disenio a mangipangpangruna ti panagurnos ti kodigo para iti programmer ngem ti organisasion ti datos para iti makina. Tapno maibangon dagiti nangato ti panagaramidna, masukatan a sistema a kalikaguman dagiti moderno nga empresa, kasapulan ti panagbalbaliw ti paradigm. Ditoy a rummuar ti Data-oriented Design (DOD) a kas kritikal a pilosopia, maysa a mangitunos ti arkitektura ti software iti hardware a pagtarayanna tapno maikkat dagitoy a bottleneck sakbay a mangrugida.

Ti Nalimed a Panagguyod ti Presion ti Memoria

Iti kangrunaanna, ti presion ti memoria ket mangibagbaga ti panag-uyot a naikabil iti subsistema ti memoria ti maysa a sistema (dagiti cache ti RAM ken CPU). Nakaskasdaaw ti kapartak dagiti moderno a prosesor, ngem mangbusbosda iti dakkel a kaadu ti panawen nga agur-uray iti pannakaala ti datos manipud iti kangrunaan a memoria. Tapno mapalag-an daytoy, dagiti CPU ket agus-usar kadagiti babassit, ultra-napartak a banko ti memoria a maawagan kadagiti cache. No ti datos a kasapulan ti CPU ket addan iti cache (maysa a cache hit), napardas ti panagproseso. No saan (a cache miss), agsardeng ti CPU, nga agur-uray iti pannakaala ti datos. Mapasamak ti presion ti memoria no ti agtartrabaho a grupo ti datos ket dakkel unay wenno saan a nasayaat ti pannakaurnosna, a mangiturong iti kankanayon nga ayus dagiti pannakaliway ti cache. Iti gagangay a disenio a naipangpangruna iti banag, ti datos ket masansan a naiwarwaras kadagiti adu a saggaysa a naituding a banag. Ti panagulit babaen ti listaan ​​dagitoy a banag ket kayatna a sawen ti panagluksaw kadagiti agdumaduma a lokasion ti memoria, ti padron a makadidigra para iti kinaepisiente ti cache. Ti prefetcher ti CPU ket saan a makapakpakadaan kadagitoy a naiparparna a panagserrek, a mangibunga ti kankanayon a panagtaktak ken nakaro a nadadael a panagaramid.

No Mapaay ti Panagtitinnulong: Ti Problema ti Panagsusupiat ti Kandado

Kadagiti multi-threaded nga aplikasion, a sadiay dagiti adu nga aramid ket maipatungpal nga aggigiddan, dagiti agparparang-ay ket agus-usar kadagiti kandado (wenno dagiti mutex) tapno malapdan dagiti nadumaduma a thread manipud iti panangbalbaliw ti isu met laeng a datos nga aggigiddan, a mangiturong iti panagdadael. Tumaud ti panagsusupiat iti kandado no masansan a padasen ti adu a thread ti makagun-od iti isu met laeng a kandado. Imbes nga agtrabahoda nga aggigiddan, dagiti sinulid ket agngudo nga agur-uray iti linya para iti turnoda, a mangserial kadagiti operasion a nairanta nga aggigiddan. Daytoy ket pagbalinenna ti multi-core a sistema, a rumbeng a mangitukon ti nayon a throughput, a kas maysa a sistema a dagiti core ket awan aramidda, a nabara babaen ti software-a naipabaklay a traffic jam. Ti nalabes a panagsusuppiat ti kandado ket maysa a pakabigbigan dagiti arkitektura a sadiay ti naibingbingay, agbaliwbaliw a kasasaad ket kadawyan, ti sabali pay a masansan a pakabigbigan dagiti banag-a naipangpangruna a sistema a mangmodelo ti lubong a kas ti grapo dagiti agsisilpo a banag. Ti overhead ti panaggun-od ken panangiruar kadagiti kandado, a naitipon iti oras ti panagur-uray, ket mabalin a manggiling ti panagsukog ti maysa a sistema aginggana ti panagsardeng.

Disenyo a naipangpangruna iti datos: Panagarkitektura para iti Panagaramid

Ti Disenyo a naipangpangruna iti datos ket saan nga espesipiko a biblioteka wenno ramit, ngem maysa a batayan a panagbalbaliw ti panagpampanunot. Imbes a damagen ti "Ania dagiti banag iti sistemak?", saludsoden ti DOD "Ania dagiti panagbalbaliw a kasapulak nga aramiden iti datosko, ken kasano a mai-layout dayta a datos tapno agbalin dagita a panagbalbaliw a kas episiente agingga a mabalin?" Daytoy nga asitgan ket direkta a mangtaming kadagiti parikut ti presion ti memoria ken panagsusuppiat ti kandado babaen ti panangipangpangruna ti wagas a pannakagun-od ti datos iti memoria.

Panagbangon iti Natibker a Pundasion a kadua ni Mewayz

Ti panangampon ti pilosopia ti Disenyo a naipangpangruna iti Datos manipud iti daga ket tulbek iti panagbangon kadagiti aplikasion ti negosio a saan laeng nga agtigtignay, ngem naisangsangayan a napardas ken maipadakkel. Daytoy ti kangrunaan a prinsipio iti likudan ti arkitektura ti Mewayz. Babaen ti panangdisenio iti modular a negosio nga OS-mi nga addaan iti panagayus ti datos ken kinaepisiente ti hardware kas kangrunaan a pakaseknan, pabassitenmi dagiti klasiko a silo ti panagaramid ti presion ti memoria ken panagsusupiat ti kandado sakbay a makaapektarda kadagiti panagpataraymo. Ti modular a kinatao ti Mewayz ket kayatna a sawen a tunggal maysa a paset ket nainheniero tapno episiente a mangasikaso ti datos, a mangsigurado a bayat a dumakkel ti negosiom ken umad-adu dagiti tomo ti datosmo, agtalinaed a makasungbat ti sistema. Daytoy a proaktibo a wagas ti panagaramid ket isu ti mangipalubos ti Mewayz a mangipaay ti awan ti panagdadait ken nabileg a pundasion para kadagiti komplikado, data-driven nga aramid a mangikeddeng ti moderno a negosio, a mangpabileg ti grupom nga agtrabaho a saan a mapabannayat babaen dagiti di makita a bottleneck ti saan a nasayaat ti pannakadiseniona a software.

Amin nga Alikamen ti Negosyom iti Maymaysa a Lugar

Isardeng ti panag-juggle kadagiti adu nga app. Ti Mewayz ket pagtitiponenna ti 208 nga alikamen iti gatad laeng a $49/bulan — manipud iti imbentaryo agingga iti HR, panag-book agingga iti analytics. Awan ti kasapulan a credit card tapno mangrugi.

|

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime