2013-04-27 13 views
5

Chcę zmierzyć czas wykonywania segmentu kodu C przy użyciu systemu Linux. Biorę jeden znacznik czasu na początku segmentu kodu i jeden na końcu. Ale nie wiem, jak chronić kod przed przerwań i przełączników kontekstu do wysokich wcześniejszych zadań. Program działa w przestrzeni użytkownika! Segment kodu jest krótki, więc nie wpadaj w panikę podczas wciągania systemu.Pomiar czasu wykonywania kodu C (Linux)

Czy ktoś zna proste rozwiązanie dla tego rodzaju ochrony?

+0

Jaki znaczący problem próbujesz rozwiązać? – Sebivor

+0

zauważ, że po przejściu na tag "time-mea ..", jest 0 obserwujących. Istnieją znaczniki do testowania i wydajności, które mają więcej obserwujących. Powodzenia. – shellter

+1

Nie ma sposobu, aby kod przestrzeni użytkownika robił takie rzeczy. Prawdopodobnie najlepszą rzeczą, jaką możesz zrobić, to zmierzyć jak 10000 razy i przyjąć średnią. Na odwrót byłoby emulowanie CPU. Możesz także mierzyć inne rzeczy niż czas. – Powerslave

Odpowiedz

3

Można użyć getrusage(2), aby uzyskać czas procesora, a nie tylko pomiar czasu rzeczywistego. To powinno dać ci odpowiedź, której potrzebujesz, bez uciekania się do zabawnych interesów, takich jak blokowanie uruchamiania innych programów.

+0

Dziękuję bardzo, dokładnie tego właśnie szukałem! – Fox0815

Powiązane problemy