Flask Academy · Oppitunti

Välimuistita raskaat funktiot

Tallenna funktioiden tulokset argumenttien perusteella.

Oppitunti 3/413 vaihetta

Välimuistita raskaat funktiot on ilmainen Flask Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Flask Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Flask Academy-kurssilla on yhteensä 4 oppituntia.

Kokonaisia näkymiä pidemmälle

Joskus ongelmana on koko sivun sijaan vain yksi hidas apufunktio. Memoization tallentaa funktion tuloksen sen argumenttien perusteella.

memoize-dekorattori

Käärisitte funktion @cache.memoize()-dekorattorilla. Samat argumentit palauttavat tallennetun tuloksen sen sijaan, että se laskettaisiin uudelleen. 💡

@cache.memoize()
def heavy(n):
    return slow_calc(n)

Avain muodostetaan argumenteista

Memoize muodostaa avaimen arguments-arvoista. heavy(2) ja heavy(5) välimuistitetaan erikseen, ja kumpikin muistaa oman tuloksensa.

cached ja memoize

Käyttäkää cached-dekorattoria URL-osoitteen perusteella avainnettuihin näkymiin ja memoizea syötteidensä perusteella avainnettuihin tavallisiin funktioihin. Ne ratkaisevat eri tasojen ongelmia.

Aseta memoize-aikakatkaisu

Kuten näkymille, myös memoizelle annetaan timeout, jotta tulokset vanhenevat. Kun aika on kulunut, seuraava kutsu laskee tuloksen uudelleen ja tallentaa sen uudestaan.

@cache.memoize(timeout=120)
def rates():
    ...

Täydellinen puhtaille funktioille

Memoize toimii erinomaisesti pure-funktioilla: sama syöte tuottaa aina saman tuloksen ilman menetettäviä sivuvaikutuksia.

Vältä sivuvaikutusten välimuistitusta

Älkää memoizoiko funktiota, joka lähettää sähköpostia tai kirjoittaa rivin. cache hit -tilanteessa funktion runko ohitetaan, joten vaikutusta ei suoriteta koskaan.

Metodit vaativat huolellisuutta

Instanssimetodeissa avain sisältää self-arvon. Kaksi oliota saa erilliset välimuistit, mikä on yleensä juuri haluttu toiminta.

Poista yksi memoisoitu tulos

Voitte poistaa yksittäisen tietueen delete_memoized-metodilla välittämällä sille funktion ja täsmälliset argumentit, jotka haluatte tyhjentää.

cache.delete_memoized(rates)

Tyhjennä argumentin perusteella

Välittäkää argumentit delete_memoized-metodille, jotta vain kyseinen muunnelma poistetaan ja kaikki muut välimuistissa olevat tulokset säilyvät.

cache.delete_memoized(heavy, 5)

Mittaa ennen memoizointia

Memoizoikaa vain se, mikä on todella hidasta. Tehkää ensin Profile-profilointi, sillä halvan työn välimuistitus lisää avaimen käsittelykustannuksia ja tuottaa vain vähän todellista hyötyä.

Pikatarkistus

Memoisoitte funktion, joka myös kirjaa jokaisen kutsun tietokantaan.

Kertaus: memoizointi

Voitte memoize-toiminnolla välimuistittaa hitaat puhtaat funktiot, avainnettaa tulokset argumenttien perusteella, asettaa aikakatkaisuja ja poistaa tuloksia delete_memoized-metodilla. 🎯

Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”Välimuistita raskaat funktiot” ilmainen?

Kyllä – oppitunnin ”Välimuistita raskaat funktiot” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Flask Academy-kurssin, päivitä CoddyKit PROhon. Flask Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Välimuistita raskaat funktiot”?

Tallenna funktioiden tulokset argumenttien perusteella. Harjoittelet Flask Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Flask Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Flask Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Välimuistita raskaat funktiot”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Flask Academy-oppitunnilla?

Kyllä. Jokainen Flask Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Määritä Flask-Caching
  2. Välimuistita view cachedilla
  3. Välimuistita raskaat funktiot
  4. Virheellistä välimuisti ja vanhentuneet merkinnät
← Takaisin: Flask Academy