Välimuistita raskaat funktiot
Tallenna funktioiden tulokset argumenttien perusteella.
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. 🎯
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
- Määritä Flask-Caching
- Välimuistita view cachedilla
- Välimuistita raskaat funktiot
- Virheellistä välimuisti ja vanhentuneet merkinnät