Ratkaistu: kulunut aika

Viimeisin päivitys: 09/13/2023
Kirjoittaja: Rust SourceTrail

Kulunut aika on kriittinen näkökohta monissa ohjelmistokehityksen sovelluksissa. Olitpa rakentamassa peliä, ajanseurantatyökalua tai tuottavuussovellusta, kuluneen ajan tarkka ja tehokas laskeminen on ratkaisevan tärkeää. Rustissa useiden menetelmien avulla kehittäjät voivat laskea kuluneen ajan. Tämä artikkeli keskittyy ruosteen vakioratkaisuun, kuvaa ongelmaa, esittelee ratkaisun ja selittää koodin jokaisen vaiheen.

Ongelma

Jokaisen kehittäjän on jossain vaiheessa laskettava aikaero kahden ohjelman suorituspisteen välillä. Haasteena ei ole pelkästään ajan mittaaminen, vaan sen varmistaminen, että mittaus on tarkka, tarkka ja järjestelmäresurssien kannalta tehokas.

Ratkaisu käyttäen Rustin standardikirjastoa

Rustissa vakiokirjasto tarjoaa tavan laskea kulunut aika käyttämällä Instant-rakennetta std::time-moduulista. Seuraava ratkaisu käyttää Instant::now-funktiota, joka palauttaa nykyisen ajankohdan esiintymän.

Ensimmäinen vaihe on tuoda kirjasto:

käytä std::time::Instant;

Seuraava vaihe sisältää nykyisen ajan tallentamisen jossain vaiheessa koodia, tämän ajan tallentamisen, toimintojen suorittamisen ja nykyisen ajan sieppaamisen uudelleen.

anna start = Instant::now();
// jokin operaatio
anna kesto = start.elapsed();

Tässä vaiheessa "kesto" sisältää kuluneen ajan.

Vaiheittainen koodin selitys

Ruosteessa, std::time::Instant::now -metodi antaa nykyisen ajan Instant struct -objektina. Palautetulla objektilla on kaksi hyödyllistä menetelmää: "kulunut" ja "kesto_alkaen". Kun Instant-objektiin kutsutaan "kulunut"-toiminto, se antaa keston tämän hetken ja tämän hetken välillä.

Annetussa koodissa tallennamme ensin ajan toiminnon alussa ja tallennamme sen "aloitus"-muuttujaan. Sitten suoritamme toimenpiteen. Sen jälkeen käytämme kulunutta menetelmää "aloitus" Instantissa saadaksemme Duration-rakenteen. Tämä rakenne edustaa kulunutta aikaa.

Tarkkuuden parantaminen

Kuluneen ajan laskennan tarkkuuden parantamiseksi sinun tulee sijoittaa ajastimen aloitus ja lopetus mahdollisimman lähelle toimintoa, kirjaimellisesti rivi ennen ja jälkeen, jos mahdollista.

Toinen huomionarvoinen seikka on Rustin kyky hallita järjestelmän kellon muutoksia. Rust huomioi nämä automaattisesti, joten vaikka järjestelmän kello muuttuisi koodin ollessa käynnissä, saat silti oikean kuluneen ajan.

Hyödyllisiä kirjastoja ruosteella

Jotkut kätevät kirjastot toimivat Rustin kanssa kuluneen ajan laskemisen lisäksi myös päivämäärän ja ajan toiminnoissa. Nämä sisältävät:

  • Aika: Tämä on Rust-päivämäärä-ajan käsittelykirjasto, joka tarjoaa tyyppejä ja toimintoja, jotka ovat tarpeen ajan jäsentämiseen, näyttämiseen ja aritmetiikkaan.
  • aika: Tämä kirjasto keskittyy ajan manipulointiin, mukaan lukien keston löytäminen ja kuluneen ajan laskeminen.

Hakemuksen kuluneen ajan käsittelyn ymmärtäminen on erinomainen taito kenen tahansa käsissä Ruosteen kehittäjä. Käytössäsi olevien monipuolisten vakiokirjastojen ja hyödyllisten kolmansien osapuolien kirjastojen ansiosta sinulla on kaikki mitä tarvitset sovelluksesi lähes kaikkien aikaan liittyvien tehtävien hoitamiseen.

Related viestiä: