Onko kellään tiedossa sellaista työkalua, jolla voisi mitata tietyn funktion suorittamiseen kuluvan ajan? Kyse on sulautetusta koodista, josta pitäisi voida debug -tilassa tutkia tuo funktion kuluttama aika. Kieli on C.
Funktion ottama aika
sulautettu
6630
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 6
Vanhimmat
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469
onnistuu esim. clock() -funktiolla, syötät funktiolle ajan kun mitattavan funktion kutsu tehdään, syötät toiselle muuttujalle clock() -funktiolla toisen ajan kun palataan mitattavasta funktiosta, suoritan erotuksen ja tulostat sen!
esim:
clock_t x,y;
x=clock();
mitatta_funktio();
mitattava_funktio()
{
SUORITETAAN!
y=clock();
return y;
}
int erotus = x-y;
cout
ja debuggerissa voit katsoa muuttujan erotus sisältämää aikaa esim. silmukkarakenteessa, eli toimii kuten junan vessa! :)
kirjastona clock() -funktiolle on muistaaksen time.h
on huomattava että sulautetussa ei vältämättä ole moista
...käytän kuitenkin MS Visual C :aa. Jos aika tuossa Visualissa käännetyssä on tarpeeksi pieni, niin kait se on sitä myös lopullisessa IAR:n kääntäjällä käännetyssä softassa? Täytyypä kokeilla, kunhan ehdin taas sen projektin kimppuun. Kiitos neuvoista.
Hmm..ainahan voisi laittaa jonkun outputti pinnin tilaksi vaikka ykköstä sen funktion ajaksi ja sitten vaan mittailla skoopin kanssa pulssin leveyttä.
Mitä debuggeria käytät?
Voihan sen kalikan sisäisiä timereita käyttää jos niitä on vapaana.. Lukemat vaan ylös.