najlepiej na Windowsie
Jeśli programujesz w Visual Studio, to ma on wbudowany profiler.
konkrena linijka? pętla?).
Program jest napisany w C, nie jest skomplikowany - to w zasadzie trochę pętli i warunków.
Próbowałam z gprof na Linuxie, ale nie mam praktycznie żadnych wyników.
Zgaduję, że masz 99% wolnego kodu w jednej funkcji? To trzeba profilować na poziomie linii.
Najbardziej out of the box jest gcov, który jest instalowany razem z GCC więc powinieneś już go mieć: https://en.wikipedia.org/wiki/Gcov#Example
Natomiast zwróć uwagę, że takie narzędzia (callgrind chyba też, nie wiem czy da się zmienić) liczą ile razy dana linia została wykonana, a nie ile czasu faktycznie zajęła. 1000000 iteracji dodawania zmiennoprzecinkowego lub operacji na pamięci zajmą więcej czasu niż 1000000 iteracji dodawania dwóch liczb całkowitych. Powyższe narzędzia prawdopodobnie będą wystarczyły, ale do analizy faktycznego czasu osobiście preferuję profilery samplujące jak google-perftools i bodajże ten Visuala.