hell-student
Lieutenant
- Registriert
- Nov. 2007
- Beiträge
- 671
Hallo Zusammen,
ich habe folgendes Problem: Ich möchte gerne die Zeit messen, die ein Programmteil, welcher in C geschrieben ist, zur Berechnung braucht. Da ich das ganze auf einem FPGA Board unter Linux mache, gestaltet sich dies alles leider nicht so einfach. Die Clock ist auf 10 Millisekunden eingestellt, sodass ich damit nicht genauer messen kann (in ns zb). Nun habe ich per Software bei der benutzten Hardware die Möglichkeit per Registerzugriff die Cycles zu messen und daraus mir meine ns zu berechnen. Wenn ich mir den ObjDump anschaue, sieht der für mich eigentlich normal aus. Ich versuche nur eine einfach Addition zu messen komme aber auf mehr als ~6000 cycles, was dafür viel zu viel ist, auch wenn Cache etc noch nicht aufgewärmt ist. Die CPU ist eine SPARC Architektur von Typ LEON3. Nun hab ich den Verdacht, dass der Compiler Gcc mir irgendwie den Code optimiert bzw. vielleicht in die Zeitmessung schiebt wodurch eine solch hohe Cycle-Zahl entsteht. Leider habe ich bisher keine andere Möglichkeit gefunden, genauer zu messen.
Ich habe schon per timer_list im proc Verzeichnis geschaut und mir ist dort hrtimer aufgefallen. Kann man den irgendwie auch im Userspace benutzen?
ich habe folgendes Problem: Ich möchte gerne die Zeit messen, die ein Programmteil, welcher in C geschrieben ist, zur Berechnung braucht. Da ich das ganze auf einem FPGA Board unter Linux mache, gestaltet sich dies alles leider nicht so einfach. Die Clock ist auf 10 Millisekunden eingestellt, sodass ich damit nicht genauer messen kann (in ns zb). Nun habe ich per Software bei der benutzten Hardware die Möglichkeit per Registerzugriff die Cycles zu messen und daraus mir meine ns zu berechnen. Wenn ich mir den ObjDump anschaue, sieht der für mich eigentlich normal aus. Ich versuche nur eine einfach Addition zu messen komme aber auf mehr als ~6000 cycles, was dafür viel zu viel ist, auch wenn Cache etc noch nicht aufgewärmt ist. Die CPU ist eine SPARC Architektur von Typ LEON3. Nun hab ich den Verdacht, dass der Compiler Gcc mir irgendwie den Code optimiert bzw. vielleicht in die Zeitmessung schiebt wodurch eine solch hohe Cycle-Zahl entsteht. Leider habe ich bisher keine andere Möglichkeit gefunden, genauer zu messen.
Ich habe schon per timer_list im proc Verzeichnis geschaut und mir ist dort hrtimer aufgefallen. Kann man den irgendwie auch im Userspace benutzen?