Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa · Oppitunti

Koontien profilointi ja virheenkorjaus

Käyttäkää Gradlen sisäisiä profilointityökaluja ja -tekniikoita suorituskykypullojen tunnistamiseen.

Oppitunti 2/411 vaihetta

Koontien profilointi ja virheenkorjaus on ilmainen Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-oppitunti CoddyKitissä. Tämä on oppitunti 2/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 Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-kurssilla on yhteensä 4 oppituntia.

Mitä koonnin profilointi on?

Kun Gradle-koontien suorittaminen alkaa kestää liian kauan, kehitystyö voi hidastua huomattavasti. Koonnin profilointi on kuin koonnin elintoimintojen mittaamista, jonka avulla selvitetään, mihin kaikki aika kuluu.

  • Se auttaa paikantamaan hitaimmat tehtävät.
  • Se paljastaa piilevät pullonkaulat ja tehottomuudet.
  • Perimmäisenä tavoitteena on nopeuttaa palautetta ja parantaa kehittäjien tuottavuutta.

Ajatelkaa profilointia tehokkaana koontiprosessin diagnostiikkatyökaluna.

Gradle Build Scan -raporttien esittely

Gradle Build Scan -raportit ovat vuorovaikutteisia verkkoraportteja, jotka tarjoavat yksityiskohtaista ja visuaalista tietoa koonnin suorittamisesta. Ne ovat erittäin hyödyllisiä koonnin toiminnan ymmärtämiseen ja jakamiseen.

  • Näette kaikkien tehtävien yksityiskohtaisen aikajanan.
  • Ymmärrätte riippuvuuksien selvityksen ja verkkoliikenteen toiminnan.
  • Voitte selvittää, miksi tehtävät eivät ole ajan tasalla tai miksi ne eivät käytä build-välimuistia.
  • Voitte jakaa raportin helposti työtovereille tai tukipalvelulle URL-osoitteen avulla.

Raportti tarjoaa kattavan yleiskuvan siitä, miten koonti todellisuudessa suoritetaan.

Build Scan -raporttien käyttöönotto

Build Scan -raportin luomista varten on ensin otettava käyttöön com.gradle.build-scan-lisäosa. Tämä tehdään yleensä settings.gradle-tiedostossa, joka määrittää projektin rakenteen.

Lisäosa lisätään seuraavasti:

// settings.gradle
rootProject.name = 'my-project'

plugins {
    id 'com.gradle.build-scan' version '3.16' // Use a recent version
}

gradle.buildScan {
    // Agree to the terms of service (required for usage)
    termsOfServiceUrl = 'https://gradle.com/terms-of-service'
    termsOfServiceAgree = 'yes'
}

Ensimmäisen Build Scan -raportin luominen

Kun build-scan-lisäosa on määritetty, raportin luominen on suoraviivaista. Lisää tavalliseen Gradle-komentoon vain --scan. Raportti ladataan väliaikaiseen URL-osoitteeseen.

Voitte esimerkiksi suorittaa build-tehtävän ja luoda raportin näin:

gradle build --scan

Kun koonti on valmis, konsoliin tulee yksilöllinen URL-osoite. Avatkaa se verkkoselaimessa nähdäksenne yksityiskohtaisen Build Scan -raportin!

Build Scan -raporttien tarkastelu

Build Scan -raportti sisältää runsaasti tietoa, joka on järjestetty useisiin välilehtiin. Tärkeimpiä tarkasteltavia osioita ovat:

  • Overview: korkean tason yhteenveto koonnin kestosta, tuloksesta ja tärkeimmistä mittareista.
  • Timeline: visuaalinen esitys tehtävien suorittamisesta ajan kuluessa.
  • Tasks: yksityiskohtainen näkymä jokaiseen tehtävään, mukaan lukien sen suoritusaika ja tulos, kuten FROM_CACHE tai EXECUTED.
  • Performance: tietoa koonnin välimuistin käytöstä, riippuvuuksien selvityksestä ja määritysajasta.
  • Tests: jos koonti suorittaa testejä, tämä välilehti sisältää yksityiskohtaiset testitulokset.

Tutustukaa näihin välilehtiin, jotta voitte analysoida tehokkaasti koontinne toimintaa.

Syvällinen katsaus: Timeline-välilehti

Build Scan -raportin Timeline-välilehti on erittäin hyödyllinen pullonkaulojen tunnistamiseen. Se näyttää visuaalisesti, milloin kukin tehtävä alkoi ja päättyi sekä miten tehtäviä suoritetaan rinnakkain.

  • Etsikää pitkään suoritettavia tehtäviä, jotka suoritetaan peräkkäin ja estävät muita tehtäviä.
  • Tunnistakaa suoritusajan aukot, jotka voivat viitata joutoaikaan tai resurssien odottamiseen.
  • Ymmärtäkää kriittinen polku eli tehtävien järjestys, joka määrittää koonnin kokonaiskeston.

Optimoidussa koonnissa toisistaan riippumattomat tehtävät suoritetaan mahdollisimman samanaikaisesti.

Tehtävien välimuistitus ja syötteet

Build Scan -raportit auttavat erinomaisesti selvittämään, miksi tehtäviä saatetaan suorittaa uudelleen tarpeettomasti. Napsauttakaa Tasks-välilehdellä tehtävää nähdäksenne sen tiedot:

  • Tulos: oliko tulos FROM_CACHE, UP-TO-DATE vai EXECUTED?
  • Syötteet: mitä tiedostoja tai ominaisuuksia Gradle tarkasteli tämän tehtävän yhteydessä?
  • Tulosteet: mitä tiedostoja tehtävä tuotti?

Jos tehtävän tulos on jatkuvasti EXECUTED, vaikka mikään ei näytä muuttuvan, syynä ovat usein tehtävän ilmoitetuissa syötteissä tai tulosteissa olevat ongelmat. Tällöin välimuistitus tai inkrementaaliset koonnit eivät ole mahdollisia.

Paikallinen profilointi valitsimella --profile

Gradle tarjoaa --profile-valitsimen nopeaa paikallista analyysiä varten ilman kokonaisen Build Scan -raportin lataamista. Se luo paikallisen HTML-raportin suoraan projektin build/reports/profile-hakemistoon.

Raportti on suppeampi eikä sitä voi jakaa Build Scan -raportin tavoin, mutta se sopii erinomaisesti nopeaan iterointiin ja suorituskykyongelmien paikalliseen virheenkorjaukseen.

Kokeillaan sitä yksinkertaisella mukautetulla tehtävällä:

// build.gradle
tasks.register('mySlowTask') {
    group = 'Verification'
    description = 'A task that simulates some work.'
    doLast {
        println 'Starting a simulated slow task...'
        Thread.sleep(2000) // Pause for 2 seconds
        println 'Simulated slow task finished!'
    }
}

// To run and profile this:
// gradle mySlowTask --profile

Paikallisten profilointiraporttien tulkitseminen

Kun olette suorittaneet komennon gradle --profile, siirtykää projektin build/reports/profile-hakemistoon ja avatkaa luotu HTML-raportti, esimerkiksi profile.html. Tärkeimpiä tarkasteltavia osioita ovat:

  • Task Execution: kunkin tehtävän suoritusaika. Tämä tuo hitaimmat tehtävät heti esiin.
  • Dependency Resolution: kuinka paljon aikaa ulkoisten riippuvuuksien selvittämiseen kului.
  • Configuration: projektin määrittämiseen kulunut aika, johon kuuluu build.gradle-tiedostojen jäsentäminen ja lisäosien käyttöönotto.

Tunnistakaa optimoinnin tärkeimmät kohteet keskittymällä osioihin, joissa aika-arvot ovat suurimmat.

Suorituskykytyökalujen tarkistus

Olette tutustuneet kahteen Gradle-koontien profiloinnin päätyökaluun. Testataan nyt, ymmärrättekö niiden tärkeimmät ominaisuudet.

Kertaus: profilointi suorituskyvyn parantamiseksi

Erinomaista työtä! Olette nyt tutustuneet hitaiden Gradle-koontien profiloinnin ja virheenkorjauksen keskeisiin työkaluihin ja tekniikoihin.

  • Build Scan -raportit (`--scan`): ensisijainen vaihtoehto kattaville ja jaettaville verkkoraporteille, jotka tarjoavat yksityiskohtaista tietoa koonnin kaikista osa-alueista.
  • Paikalliset profilointiraportit (`--profile`): nopea ja kätevä tapa saada HTML-raportti välitöntä paikallista suorituskyvyn tarkistamista varten.
  • Tärkeimmät tarkkailtavat alueet: keskittykää aina tehtävien suoritusaikoihin, koonnin aikajanaan ja tehtävien välimuistituksen tuloksiin, jotta voitte paikantaa ja ratkaista suorituskyvyn pullonkaulat.

Käyttämällä näitä työkaluja tehokkaasti voitte analysoida ja optimoida Gradle-koontien suorituskykyä merkittävästi, mikä nopeuttaa kehityssyklejä!

Aloita maksutta

Opi Groovy 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
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Koontien profilointi ja virheenkorjaus” ilmainen?

Kyllä – oppitunnin ”Koontien profilointi ja virheenkorjaus” 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 Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-kurssin, päivitä CoddyKit PROhon. Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Koontien profilointi ja virheenkorjaus”?

Käyttäkää Gradlen sisäisiä profilointityökaluja ja -tekniikoita suorituskykypullojen tunnistamiseen. Harjoittelet Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Koontien profilointi ja virheenkorjaus”-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ä Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-oppitunnilla?

Kyllä. Jokainen Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-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. Koonnin välimuisti ja daemon
  2. Koontien profilointi ja virheenkorjaus
  3. Rinnakkaissuoritus ja määritys
  4. Inkrementaaliset buildit ja tehtävien syötteet/tulosteet
← Takaisin: Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa