Advertisement
Guest User

Untitled

a guest
Jun 29th, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. Method | executable size | Time Taken (in sec) |
  2. | -O0 | -O3 | -O0 | -O3 |
  3. ------------|---------|---------|-----------|----------|
  4. 1. memset | 17 kB | 8.6 kB | 0.125 | 0.124 |
  5. 2. fill | 19 kB | 8.6 kB | 13.4 | 0.124 |
  6. 3. manual | 19 kB | 8.6 kB | 14.5 | 0.124 |
  7. 4. assign | 24 kB | 9.0 kB | 1.9 | 0.591 |
  8.  
  9. #include <vector>
  10.  
  11. #define TEST_METHOD 1
  12. const size_t TEST_ITERATIONS = 100000;
  13. const size_t TEST_ARRAY_SIZE = 10000;
  14.  
  15. int main(int argc, char** argv) {
  16.  
  17. std::vector<int> v(TEST_ARRAY_SIZE, 0);
  18.  
  19. for(size_t i = 0; i < TEST_ITERATIONS; ++i) {
  20. #if TEST_METHOD == 1
  21. memset(&v[0], 0, v.size() * sizeof v[0]);
  22. #elif TEST_METHOD == 2
  23. std::fill(v.begin(), v.end(), 0);
  24. #elif TEST_METHOD == 3
  25. for (std::vector<int>::iterator it=v.begin(), end=v.end(); it!=end; ++it) {
  26. *it = 0;
  27. }
  28. #elif TEST_METHOD == 4
  29. v.assign(v.size(),0);
  30. #endif
  31. }
  32.  
  33. return EXIT_SUCCESS;
  34. }
  35.  
  36. some_vector.assign(some_vector.size(), 0);
  37.  
  38. memset(&my_vector[0], 0, my_vector.size() * sizeof my_vector[0]);
  39.  
  40. std::fill
  41.  
  42. std::size siz = vec.size();
  43. //no memory allocating
  44. vec.resize(0);
  45. vec.resize(siz, 0);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement