Witam,
Mam takie pytanie jak najłatwiej zmierzyć ile pamięci zużywa program i jak długo się wykonuje. Program odpalany z pod konsoli, szukam też konsolowego rozwiązania.
Pozdrawiam.
Witam,
Mam takie pytanie jak najłatwiej zmierzyć ile pamięci zużywa program i jak długo się wykonuje. Program odpalany z pod konsoli, szukam też konsolowego rozwiązania.
Pozdrawiam.
Podstawowe narzędzia to top oraz time. Na początek powinny wystarczyć.
Top jest zły, bo to są programy, ktore wykonuja sie niewielkie ilosci sekund (milisekundy powiedzmy) i chcialbym te roznice wlasnie wylapywac w poszczegolnych rozwiazaniach danego problemu. To moge rozwiazac time'em, nawet nanotime()'m z C, wiec ten problem z glowy. Natomiast co ze zuzyciem pamieci? Jak to mierzyc?
Czy da sie w top'ie wylapac proces o odpowiedniej nazwie, tak aby tylko jego np. najwieksze lub srednie zuzycie pamieci bylo pokazane?
Można w kodzie umieścić jakąś instrukcję, żeby wykonanie się na chwilę wstrzymało i wtedy zobaczyć na top albo ps (chyba z opcją aux) ile zajmuje pamięci. Ale to tak z pamięci piszę, bo nie mam teraz dostępu do linuxa.
No a najlepiej byłoby użyć jakiegoś profilera (np. do pamięci valgrind jest popularny), ale to już dużo więcej roboty.
Cześć,
najprościej zmierzyć czas wykonania programu narzędziem time:
time ./mojprogram
Dużo więcej można się dowiedzieć korzystając z profilera gprof - wystarczy wykonać trzy polecenia z terminala by wyświetlić raport:
-ile czasu wykonywała się każda funkcja
-ile razy się wykonała.
Akurat ostatnio wrzuciłem na mojego bloga dwuczęściowy tutorial do gprof http://www.mateuszmidor.com/2011/03/profilowanie-pod-linuxem-wstep/
Pozdrawiam!
Najlepiej by było chyba, gdybyś mał dostęp do kodu tych aplikacji i mógł sam sobie zmierzyć wykonanie danego programu w iterazcji np. po 1000 razy.
Opolski Portal Programistyczny
http://programowanie.opole.pl
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.