Skip to content

Cercle Blog

We've got something interesting

A Memoizáció megértése a JavaScriptben

Posted on szeptember 26, 2021 By admin Nincs hozzászólás a(z) A Memoizáció megértése a JavaScriptben bejegyzéshez

mi a Memoizáció

a Memoizáció egy optimalizálási technika, amely felgyorsítja az alkalmazásokat a drága függvényhívások eredményeinek tárolásával és a gyorsítótárazott eredmény visszaadásával, ha ugyanazokat a bemeneteket ismét megadják.

Vegyünk egy példát, ez a módszer egy szám faktoriális kiszámítására rekurzió segítségével.

function recursiveFac(n) { if (n === 0) { return 1 } else { return n * recursiveFac(n - 1) }}

ez a funkció jól működik, de hosszú távon drága lesz. tegyük fel, hogy ha először a memoFac(7) – t, majd a memoFac(8) – t hívja meg, gyorsítótár nélkül a korábban kiszámított értékek tárolásához meg kell ismételnünk az egész folyamatot, a függvényt további 7-szer visszaadva.

const cache = {}function memoFac(n) { if (cache) { return cache } else { if (n === 0) { cache = 1 } else { cache = n * memoFac(n - 1) } return cache}

tehát van egy másik funkció memoFac () és global cache objektum, amely tárolja az eredményt, hogy a kulcsot.
most, ha a memoFac(8) meghívása után meghívjuk a memofac(7) programot, akkor a faktoriális(7) számított értékét már elmentettük a “gyorsítótár” objektumunkba, amelyet a függvényen kívülre helyeztünk, hogy megtartsuk a gyorsítótárazási számításokat. Így csak egyszer kell meghívnunk a függvényt, kiszámoljuk a 8 * memoFac(7) értéket, amely egyenesen a “gyorsítótárunkba” küld minket a gyorsítótárazott érték lekérésére. Király!

de várjon-ha a memoizálás ugyanazt az Általános formátumot követi (értékek lekérése a függvény külső hatókörében lévő gyorsítótárból, vagy az érték kiszámítása az anonim bezárási függvény segítségével), nem írhatnánk általános memoize függvényt? De igen!

a memoizáció fogalma a JavaScript-ben alapvetően két fogalomra épül.

  1. lezárások
  2. magasabb rendű funkciók
function memoizerHoc(fun){ let cache = {} return function (n){ if (cache != undefined ) { return cache } else { let result = fun(n) cache = result return result } }}

itt van hoc függvény memoizerHoc () és egy helyi változó gyorsítótár, amely elérhető a visszaadott függvényen belül (Bezárás).

Articles

Bejegyzés navigáció

Previous Post: A neandervölgyi étrend-a fogaktól a Bélig-SAPIENS
Next Post: DIY Spinning Nerf Target

More Related Articles

ND osztály. Articles
A lelógó fedél fejjel lefelé Articles
LexingtonRon DeSantis Donald Trumpé és a koronavírus kedvenc kormányzója Articles
élet Articles
neurológia Articles
Az ivóvíz álom értelmezése Articles

Vélemény, hozzászólás? Kilépés a válaszból

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Archívum

  • 2022 február
  • 2022 január
  • 2021 december
  • 2021 november
  • 2021 október
  • 2021 szeptember
  • 2021 augusztus
  • 2021 július
  • 2021 június
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어

Meta

  • Bejelentkezés
  • Bejegyzések hírcsatorna
  • Hozzászólások hírcsatorna
  • WordPress Magyarország

Copyright © 2022 Cercle Blog.

Powered by PressBook Blog WordPress theme