Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2012
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.26 KB | None | 0 0
  1. Test results with no optimization, -O, and -O2 optimization. -O3 not done because function inlining will render the test irrelevant. The results show a repeatable speedup using the function pointers.
  2.  
  3. gcc test.c -o test
  4.  
  5. for n in {1..3}; do echo Run $n; ./test; echo; done
  6. Run 1
  7. work_function_switch test 0 0.718000 seconds : result sum = 70000000
  8. work_function_switch test 1 5.381000 seconds : result sum = 700000000
  9. work_function_switch test 2 12.028000 seconds : result sum = 2100000000
  10. work_function_ptr test 0 0.296000 seconds : result sum = 70000000
  11. work_function_ptr test 1 2.512000 seconds : result sum = 700000000
  12. work_function_ptr test 2 7.582000 seconds : result sum = 2100000000
  13.  
  14. Run 2
  15. work_function_switch test 0 0.405000 seconds : result sum = 70000000
  16. work_function_switch test 1 3.807000 seconds : result sum = 700000000
  17. work_function_switch test 2 11.497000 seconds : result sum = 2100000000
  18. work_function_ptr test 0 0.265000 seconds : result sum = 70000000
  19. work_function_ptr test 1 2.511000 seconds : result sum = 700000000
  20. work_function_ptr test 2 7.551000 seconds : result sum = 2100000000
  21.  
  22. Run 3
  23. work_function_switch test 0 0.358000 seconds : result sum = 70000000
  24. work_function_switch test 1 3.760000 seconds : result sum = 700000000
  25. work_function_switch test 2 11.278000 seconds : result sum = 2100000000
  26. work_function_ptr test 0 0.297000 seconds : result sum = 70000000
  27. work_function_ptr test 1 2.558000 seconds : result sum = 700000000
  28. work_function_ptr test 2 7.566000 seconds : result sum = 2100000000
  29.  
  30. gcc test.c -O -o test
  31.  
  32. for n in {1..3}; do echo Run $n; ./test; echo; done
  33. Run 1
  34. work_function_switch test 0 0.577000 seconds : result sum = 70000000
  35. work_function_switch test 1 4.805000 seconds : result sum = 700000000
  36. work_function_switch test 2 11.466000 seconds : result sum = 2100000000
  37. work_function_ptr test 0 0.234000 seconds : result sum = 70000000
  38. work_function_ptr test 1 2.043000 seconds : result sum = 700000000
  39. work_function_ptr test 2 6.115000 seconds : result sum = 2100000000
  40.  
  41. Run 2
  42. work_function_switch test 0 0.327000 seconds : result sum = 70000000
  43. work_function_switch test 1 3.604000 seconds : result sum = 700000000
  44. work_function_switch test 2 10.358000 seconds : result sum = 2100000000
  45. work_function_ptr test 0 0.218000 seconds : result sum = 70000000
  46. work_function_ptr test 1 1.888000 seconds : result sum = 700000000
  47. work_function_ptr test 2 5.709000 seconds : result sum = 2100000000
  48.  
  49. Run 3
  50. work_function_switch test 0 0.327000 seconds : result sum = 70000000
  51. work_function_switch test 1 3.385000 seconds : result sum = 700000000
  52. work_function_switch test 2 9.797000 seconds : result sum = 2100000000
  53. work_function_ptr test 0 0.203000 seconds : result sum = 70000000
  54. work_function_ptr test 1 1.794000 seconds : result sum = 700000000
  55. work_function_ptr test 2 5.304000 seconds : result sum = 2100000000
  56.  
  57. gcc test.c -O2 -o test
  58.  
  59. $ for n in {1..3}; do echo Run $n; ./test; echo; done
  60. Run 1
  61. work_function_switch test 0 0.483000 seconds : result sum = 70000000
  62. work_function_switch test 1 4.025000 seconds : result sum = 700000000
  63. work_function_switch test 2 10.093000 seconds : result sum = 2100000000
  64. work_function_ptr test 0 0.265000 seconds : result sum = 70000000
  65. work_function_ptr test 1 2.091000 seconds : result sum = 700000000
  66. work_function_ptr test 2 5.835000 seconds : result sum = 2100000000
  67.  
  68. Run 2
  69. work_function_switch test 0 0.265000 seconds : result sum = 70000000
  70. work_function_switch test 1 2.667000 seconds : result sum = 700000000
  71. work_function_switch test 2 8.112000 seconds : result sum = 2100000000
  72. work_function_ptr test 0 0.203000 seconds : result sum = 70000000
  73. work_function_ptr test 1 1.716000 seconds : result sum = 700000000
  74. work_function_ptr test 2 5.039000 seconds : result sum = 2100000000
  75.  
  76. Run 3
  77. work_function_switch test 0 0.249000 seconds : result sum = 70000000
  78. work_function_switch test 1 2.668000 seconds : result sum = 700000000
  79. work_function_switch test 2 7.971000 seconds : result sum = 2100000000
  80. work_function_ptr test 0 0.188000 seconds : result sum = 70000000
  81. work_function_ptr test 1 1.560000 seconds : result sum = 700000000
  82. work_function_ptr test 2 4.711000 seconds : result sum = 2100000000
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement