fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. #include <time.h>
  5.  
  6. const int iterations = 1000000000;
  7.  
  8. double sequential(){
  9. double a = 2.3;
  10. double result = 0;
  11.  
  12. for (int c = 0; c < iterations; c++){
  13. result += a;
  14. }
  15.  
  16. return result;
  17. }
  18. double optimized(){
  19. double a = 2.3;
  20. double result0 = 0;
  21. double result1 = 0;
  22. double result2 = 0;
  23. double result3 = 0;
  24.  
  25. for (int c = 0; c < iterations; c += 4){
  26. result0 += a;
  27. result1 += a;
  28. result2 += a;
  29. result3 += a;
  30. }
  31.  
  32. return result0 + result1 + result2 + result3;
  33. }
  34.  
  35. int main(){
  36.  
  37. clock_t start0 = clock();
  38. double sum0 = sequential();
  39. clock_t end0 = clock();
  40. cout << "sum = " << sum0 << endl;
  41. cout << "sequential time: " << (double)(end0 - start0) / CLOCKS_PER_SEC << endl;
  42.  
  43. clock_t start1 = clock();
  44. double sum1 = optimized();
  45. clock_t end1 = clock();
  46. cout << "sum = " << sum1 << endl;
  47. cout << "optimized time: " << (double)(end1 - start1) / CLOCKS_PER_SEC << endl;
  48.  
  49. int b; cin >> b;
  50. }
Success #stdin #stdout 2.28s 3300KB
stdin
Standard input is empty
stdout
sum = 2.3e+09
sequential time: 1.82
sum = 2.3e+09
optimized time:  0.45