Zużycie pamięci i czas działania programu, linuks

0

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.

0

Podstawowe narzędzia to top oraz time. Na początek powinny wystarczyć.

0

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?

0

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.

0

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!

0

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1