demo1.c 659 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /* demo1.c - demo program using xprof
  2. */
  3. #include <stdio.h>
  4. #include <math.h>
  5. #include "cputil.h"
  6. double
  7. foo(double x, double y)
  8. {
  9. /* first call to sqrt is lots of instructions - dynamic loader? */
  10. return sqrt((3.0 + x)/(9.4 + y));
  11. }
  12. unsigned long curr, prev, div;
  13. int
  14. main()
  15. {
  16. unsigned long i;
  17. double z;
  18. CU_REGTHR();
  19. z = foo(1.2, 3.6);
  20. prev = 0; curr = 0;
  21. for (i = 0; i < 5; i++) {
  22. CU_CLRCTR();
  23. z += foo(z * 1.2, 3.6);
  24. curr = CU_GETCTR();
  25. div = CU_GETDIV();
  26. printf("count: %lu/%lu\t", curr + prev, div);
  27. printf("delta: %lu/%lu\n", curr, div);
  28. prev = prev + curr;
  29. }
  30. return 0;
  31. }
  32. /* --- last line --- */