Grunnleggende systemdesign for backendutviklere · leksjon

Ytelsestesting og profilering

Lær å bruke verktøy og metoder for ytelsestesting, profilering og identifisering av flaskehalser i applikasjonene Deres.

Leksjon 3 av 412 trinn

Ytelsestesting og profilering er en gratis leksjon i Grunnleggende systemdesign for backendutviklere på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Grunnleggende systemdesign for backendutviklere, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Grunnleggende systemdesign for backendutviklere inneholder totalt 4 leksjoner.

Hva er ytelsestesting?

Har De noen gang lurt på om appen Deres tåler tusenvis av brukere? Det er her ytelsestesting kommer inn!

Det handler om å evaluere hvordan et system oppfører seg under en bestemt arbeidsbelastning. Vi vil vite om det er raskt, stabilt og responsivt.

Hvorfor utføre ytelsestesting?

Hvorfor bør De utføre ytelsestesting?

  • Brukeropplevelse: Trege apper frustrerer brukerne og får dem til å forlate appen.
  • Pålitelighet: Forhindre krasj når trafikken øker kraftig.
  • Skalerbarhet: Forstå hvor mange brukere systemet kan støtte før det trenger mer ressurser.

Typer ytelsestester

Det finnes ulike måter å teste ytelse på:

  • Lasttesting: Simulerer forventet brukertrafikk for å se hvordan systemet fungerer under normale forhold og ved maksimal belastning.
  • Stresstesting: Presser systemet utover grensene for å finne bristepunktet og se hvordan det gjenoppretter seg.
  • Soak-testing: Kjører en typisk belastning over lang tid (timer eller dager) for å oppdage problemer som minnelekkasjer eller uttømming av ressurser.

Lasttesting forklart

Se for Dem et stort nettsalg! Lasttesting simulerer at mange «virtuelle brukere» besøker nettstedet eller API-et samtidig.

Det hjelper Dem med å måle responstider, gjennomstrømning (forespørsler per sekund) og ressursutnyttelse (CPU, minne) under realistiske forhold.

Populære verktøy for lasttesting

De trenger ikke å klikke «refresh» manuelt en million ganger!

Verktøy kan automatisere lasttesting:

  • Apache JMeter: Et populært verktøy med åpen kildekode for testing av webapper og ulike tjenester.
  • k6: Et moderne lasttestingsverktøy med åpen kildekode som lar Dem skrive tester i JavaScript.
  • Locust: Et Python-basert verktøy med åpen kildekode for å skrive skalerbare lasttester.

Introduksjon til profilering

Mens ytelsestesting forteller Dem «hva» som er tregt, forteller profilering Dem «hvorfor» det er tregt.

Profilering er en detaljert analyse av hvordan applikasjonens kode kjøres. Det hjelper Dem med å finne nøyaktig hvilke funksjoner eller kodelinjer som bruker mest ressurser.

CPU-profilering

CPU-profilering fokuserer på hvor mye prosessortid koden bruker. Den måler:

  • Hvilke funksjoner som kjøres oftest.
  • Hvilke funksjoner som bruker lengst tid på å kjøre.

Dette hjelper Dem med å identifisere CPU-intensive oppgaver som kan gjøre applikasjonen tregere.

Minneprofilering

Minneprofilering følger med på applikasjonens minnebruk. Den kan avdekke:

  • Minnelekkasjer: Når applikasjonen beholder minne den ikke lenger trenger.
  • Overdreven opprettelse av objekter: Når det opprettes for mange midlertidige objekter, noe som fører til hyppigere garbage collection.

Effektiv minnebruk er avgjørende for ytelse og stabilitet.

I/O-profilering

I/O-profilering undersøker hvor effektivt applikasjonen samhandler med eksterne ressurser.

Dette omfatter lesing og skriving til disk, nettverksforespørsler og databaseforespørsler. Treg I/O kan være en betydelig flaskehals, særlig i distribuerte systemer.

Vanlige profileringsverktøy

Akkurat som ved testing finnes det verktøy for profilering:

  • VisualVM (Java): Et visuelt verktøy som integrerer JDK-verktøy på kommandolinjen.
  • pprof (Go): Et kommandolinjeverktøy for visualisering og analyse av profileringsdata.
  • cProfile (Python): En innebygd profiler for Python-programmer.

Disse verktøyene kobler seg til applikasjonen mens den kjører, for å samle inn data.

Test kunnskapene Deres

La oss sjekke hvor godt De forstår ytelsestester.

Oppsummering av ytelsestesting og profilering

Godt jobbet! De har lært om de viktige rollene til ytelsestesting og profilering.

  • Ytelsestesting: Bekrefter om et system oppfyller ytelsesmålene under belastning.
  • Profilering: Finner flaskehalser i selve koden.

Begge deler er avgjørende for å bygge systemer med høy ytelse som er skalerbare og pålitelige. Fortsett å øve!

Gratis å komme i gang

Lær deg Grunnleggende systemdesign for backendutviklere med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Ytelsestesting og profilering» gratis?

Ja – hele teksten i «Ytelsestesting og profilering» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Grunnleggende systemdesign for backendutviklere-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Grunnleggende systemdesign for backendutviklere inneholder totalt 4 leksjoner.

Hva lærer jeg i «Ytelsestesting og profilering»?

Lær å bruke verktøy og metoder for ytelsestesting, profilering og identifisering av flaskehalser i applikasjonene Deres. Du øver på Grunnleggende systemdesign for backendutviklere med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Grunnleggende systemdesign for backendutviklere?

Ingen tidligere erfaring er nødvendig. Grunnleggende systemdesign for backendutviklere på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «Ytelsestesting og profilering»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Grunnleggende systemdesign for backendutviklere-leksjonen?

Ja. Alle Grunnleggende systemdesign for backendutviklere-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Optimalisering av svartid og gjennomstrømning
  2. Samtidighet og parallellitet
  3. Ytelsestesting og profilering
  4. Samling av databaseforbindelser
← Tilbake til Grunnleggende systemdesign for backendutviklere