Skip to content

Cercle Blog

We've got something interesting

Understanding Memoization in JavaScript

Posted on 26 syyskuun, 2021 By admin Ei kommentteja artikkeliin Understanding Memoization in JavaScript

What is Memoization

Memoization on optimointitekniikka, joka nopeuttaa sovelluksia tallentamalla kalliiden funktiokutsujen tulokset ja palauttamalla välimuistiin tallennetun tuloksen, kun samat tulot toimitetaan uudelleen.

Otetaanpa esimerkki, meillä on tämä menetelmä laskea luvun faktori rekursion avulla.

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

tämä toiminto toimii hyvin, mutta pitkällä aikavälillä, se on kallista. sanotaan, jos se kutsuu ensin memoFac (7) ja sitten memoFac(8), Ilman välimuisti tallentaa meidän aiemmin lasketut arvot, meidän täytyy toistaa koko prosessi, palauttamalla funktio vielä 7 kertaa.

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

joten meillä on toinen funktio memoFac () ja global cache-objekti, joka tallentaa tuloksen kyseiselle avaimelle.
jos nyt kutsumme memofacia (8) sen jälkeen, kun olemme kutsuneet memofacia(7), olemme jo tallentaneet factorialille(7) lasketun arvomme ”cache” – objektiimme, joka on siirretty funktion ulkopuolelle säilyttääkseen välimuistilaskelmansa. Näin, meidän tarvitsee vain soittaa funktio kerran, laskea 8 * memoFac (7), joka lähettää meidät suoraan meidän ”välimuisti” hakea välimuistissa arvo. Mahtavaa!

mutta odota-jos memoization noudattaa samaa yleistä muotoa (noudetaan arvoja välimuistista funktion uloimmalla soveltamisalalla, tai lasketaan arvo käyttämällä anonyymiä sulkufunktiota), emmekö voisi kirjoittaa yleistä muistiofunktiota? Kyllä voimme!

JavaScriptin muisteloinnin käsite rakentuu pitkälti kahden käsitteen varaan.

  1. lakkautukset
  2. korkeamman kertaluvun funktiot
function memoizerHoc(fun){ let cache = {} return function (n){ if (cache != undefined ) { return cache } else { let result = fun(n) cache = result return result } }}

tässä meillä on HOC-funktio memoizerHoc () ja paikallinen muuttuja välimuisti, joka on käytettävissä palautetun toiminnon (sulkeminen) sisällä.

Articles

Artikkelien selaus

Previous Post: Neandertalin ruokavalio-hampaista Sisälmyksiin-SAPIENS
Next Post: DIY Spinning Nerf Target

More Related Articles

kirjahylly Articles
tarve olla tarpeellinen Articles
Joe Moorhead erotti Mississippin osavaltion 5 mahdollista Valmennuskandidaattia Articles
Neurograniini Articles
Nevada Arbitration Rules; Rule 5 Articles
5 suosituimman kamppailulajien nyrkkeilijän ruokavalio ympäri maailmaa Articles

Vastaa Peruuta vastaus

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

Arkistot

  • helmikuu 2022
  • tammikuu 2022
  • joulukuu 2021
  • marraskuu 2021
  • lokakuu 2021
  • syyskuu 2021
  • elokuu 2021
  • heinäkuu 2021
  • kesäkuu 2021
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어

Meta

  • Kirjaudu sisään
  • Sisältösyöte
  • Kommenttisyöte
  • WordPress.org

Copyright © 2022 Cercle Blog.

Powered by PressBook Blog WordPress theme