Paranna Go-ohjelmiesi suorituskykyä profilointitekniikalla.

Profilointi on tekniikka, jota käytetään yleisesti ohjelmistokehityssyklissä analysoimaan a ohjelma, yleensä ohjelmien vertailua varten tai pullonkaulojen ja parannuskohteiden tunnistamiseksi a ohjelmoida. Profilointiin kuuluu erilaisten mittareiden, kuten muistin käytön, suorittimen käyttöasteen, suoritusajan ja muiden järjestelmätason tilastojen, mittaaminen ja analysointi.

Profiloinnin tavoitteena on tunnistaa ohjelman osat, jotka kuluttavat eniten resursseja, jotta se voidaan optimoida suorituskyvyn parantamiseksi. Profilointi voi myös auttaa virheenkorjauksessa, muistinhallinnan optimoinnissa ja samanaikaisuuden virittämisessä.

Profilointi Gossa

Gossa on monia työkaluja profilointiin. Joitakin suosittuja työkaluja ovat Go: n sisäänrakennettu pprof-profiilityökalu ja suositut kolmannen osapuolen paketit, kuten Go Tool Trace- ja Go-Torch-paketit.

The pprof paketti on osa suoritusaika paketti. The pprof paketti tarjoaa toiminnot ajonaikaisen profiloinnin tietojen kirjoittamiseen muodoissa, jotka

instagram viewer
pprof visualisointityökalu voi tulkita.

Näin voit tuoda pprof paketti Go-ohjelmiisi:

tuonti"pprof"

Go tarjoaa useita komentoja ja lippuja työskentelemään lähdekoodin kanssa. Suorita seuraava työkalu -komento päästäksesi profiilin tuloksiin eri muodoissa.

mennä työkalu pprof

Komento tulostaa sovelluksen käyttötiedot pprof komento.

Prosessorin profilointi Gossa

CPU-profilointi mittaa aikaa, jonka ohjelma käyttää toimintojen suorittamiseen. CPU-profilointi on hyödyllistä tunnistaa koodin osia, jotka kuluttavat eniten suoritinaikaa.

The pprof paketti sisältää toimintoja CPU-profiilien keräämiseen, CPU-profiloinnin aloittamiseen ja lopettamiseen sekä toiminnon profiilitietojen kirjoittamiseen tiedostoihin.

Näin aloitat ja lopetat CPU-profiilin ja kirjoitat tiedot profilointitiedostoon:

tuonti (
"os"
"runtime/pprof"
)

funcpää() {
f, err := os. Luoda("cpu_profiili.prof")
jos virhe! = nolla {
paniikki(err)
}
lykätä f. Kiinni()

err = pprof. StartCPUProfile (f)
jos virhe! = nolla {
paniikki(err)
}
lykätä pprof. StopCPUProfile()

// Profiloitava koodi
}

The pää -toiminto luo tiedoston ja sulkee tiedostovirran merkillä a lykätä lausunto ja kiinni tiedostoesiintymän toiminto. The Käynnistä CPUProfile -toiminto käynnistää CPU-profiilin ja kirjoittaa tiedot tiedostoon, ja Pysäytä CPUProfile sulkee profiilivirran a: lla lykätä lausunto. Kun olet käynnistänyt ja pysäyttänyt CPU-profiilin, voit jatkaa analysoitavan koodin kirjoittamista.

Tässä on suorituksen tulos pprof komento ohjelman profiilitiedoston kanssa:

Juoksemassa pprof -komento tiedoston kanssa käynnistää interaktiivisen kuoren, jonka avulla voit tutkia profilointitietoja. Voit käyttää komentoja, kuten alkuun ja lista nähdäksesi toiminnot, joiden suorittaminen vie eniten aikaa.

Muistin profilointi Gossa

Muistin profilointi on tekniikka, jolla tunnistetaan muistivuotoja ja kallis muistin käyttö koodissa mittaamalla koodissa olevien toimintojen muistin käyttöä.

Voit aloittaa muistiprofiilin painikkeella WriteHeapProfile toiminto. The WriteHeapProfile toiminto ottaa tiedostoinstanssin ja kirjoittaa profiilitiedot tiedostoon.

tuonti (
"os"
"runtime/pprof"
)

funcpää() {
f, err := os. Luoda("muisti_profiili.profi")
jos virhe! = nolla {
paniikki(err)
}
lykätä f. Kiinni()

err = pprof. WriteHeapProfile (f)
jos virhe! = nolla {
paniikki(err)
}

// Profiloitava koodi
}

The pää -toiminto luo profilointitiedoston ja WriteHeapProfile funktio ottaa tiedostoinstanssin argumenttina ja palauttaa kirjoitusvirhetyypin tiedostoon kirjoittamisen jälkeen. Voit jatkaa käsittele virhettä vaatimuksesi mukaan.

Estä profilointi Golla

Lohkoprofilointi mittaa ohjelman odotusaikaa synkronointiprimitiivien, kuten mutexien ja kanavien, suhteen. Lohkoprofilointi on hyödyllistä tunnistaa koodin osat, jotka voivat aiheuttaa estoa.

The Katso ylös funktio palauttaa profiilin määritetyn merkkijonon nimellä ja Kirjoittaa toiminto Katso ylös toiminto kirjoittaa pprof-muotoisen tilannekuvan profiilista tiedostoon.

Näin voit ottaa käyttöön lohkoprofiloinnin Go-ohjelmissasi:

tuonti (
"os"
"runtime/pprof"
)

funcpää() {
f, err := os. Luoda("lohko_profiili.profi")
jos virhe! = nolla {
paniikki(err)
}
lykätä f. Kiinni()

err = pprof. Katso ylös("lohko").Kirjoita kohteeseen (f, 0)
jos virhe! = nolla {
paniikki(err)
}

// Profiloitava koodi
}

Ohjelma luo tiedoston lohkoprofiilitietojen tallentamista varten, etsii lohkoja Katso ylös toiminto ja kirjoittaa lohkoprofiilin tiedot tiedostoon.

Jäljitä profilointi Golla

Jäljitysprofilointi on tekniikka, jolla mitataan ohjelman suoritusta, mukaan lukien goutiiniaikataulutus ja järjestelmäkutsut. Jäljitysprofilointi on hyödyllinen suorituskyvyn pullonkaulojen tunnistamisessa ja ohjelman eri osien välisten vuorovaikutusten ymmärtämisessä.

The jäljittää paketti sisältää toimintoja jäljitysprofilointiin. Tämä paketti on myös osa suoritusaika paketti.

tuonti (
"os"
"ajoaika/jäljitys"
)

funcpää() {
f, err := os. Luoda("jäljittää")
jos virhe! = nolla {
paniikki(err)
}
lykätä f. Kiinni()

err = jälki. Aloita (f)
jos virhe! = nolla {
paniikki(err)
}
lykätä jäljittää. Lopettaa()

// Profiloitava koodi
}

Ohjelma luo jäljitystiedoston jäljitystietojen tallentamiseksi, käynnistää jäljitysohjelman komennolla alkaa toiminto, joka ottaa tiedoston ilmentymän ja palauttaa virhetyypin ja lykkää jäljittimen kanssa Lopettaa toiminto.

Go tarjoaa myös työkaluja lähdekoodin muotoiluun. Profilointityökalujen lisäksi voit käyttää muotoilutyökaluja koodistandardien ylläpitämiseen. The gofmt työkalu on sisäänrakennettu muotoilutyökalu, jota voit käyttää Go-lähdekoodin muotoiluun paketteihisi määritettyjen sääntöjen perusteella.