1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #include <iostream> #include <time.h> using namespace std; __attribute__ ((noinline)) int f(int x) { return x; } __attribute__ ((noinline)) int g(const int& x) { return x; } const unsigned N = 200000000; int main() { clock_t start, end, loop_time; unsigned throwaway = 0; start = clock(); for (unsigned i = 0; i < N; ++i) { throwaway += i; } end = clock(); cout << "Loop time: " << (end - start) << " ticks" << endl; start = clock(); for (unsigned i = 0; i < N; ++i) { throwaway += f(i); throwaway -= i; } end = clock(); cout << "By value: " << (end - start) << " ticks" << endl; start = clock(); for (unsigned i = 0; i < N; ++i) { throwaway += g(i); throwaway -= i; } end = clock(); cout << "By ref: " << (end - start) << " ticks" << endl; cout << "Throwaway (to stop optimisation) = " << throwaway << endl; return 0; } |
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dGltZS5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCl9fYXR0cmlidXRlX18gKChub2lubGluZSkpIGludCBmKGludCB4KSB7CglyZXR1cm4geDsKfQpfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKSBpbnQgZyhjb25zdCBpbnQmIHgpIHsKCXJldHVybiB4Owp9Cgpjb25zdCB1bnNpZ25lZCBOID0gMjAwMDAwMDAwOwoKaW50IG1haW4oKSB7CgljbG9ja190IHN0YXJ0LCBlbmQsIGxvb3BfdGltZTsKCXVuc2lnbmVkIHRocm93YXdheSA9IDA7CgkKIAlzdGFydCA9IGNsb2NrKCk7Cglmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgTjsgKytpKSB7CgkJdGhyb3dhd2F5ICs9IGk7Cgl9CiAJZW5kID0gY2xvY2soKTsKCWNvdXQgPDwgIkxvb3AgdGltZTogIiA8PCAoZW5kIC0gc3RhcnQpIDw8ICIgdGlja3MiIDw8IGVuZGw7CgkKIAlzdGFydCA9IGNsb2NrKCk7Cglmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgTjsgKytpKSB7CgkJdGhyb3dhd2F5ICs9IGYoaSk7CgkJdGhyb3dhd2F5IC09IGk7Cgl9CiAJZW5kID0gY2xvY2soKTsKCWNvdXQgPDwgIkJ5IHZhbHVlOiAiIDw8IChlbmQgLSBzdGFydCkgPDwgIiB0aWNrcyIgPDwgZW5kbDsKIAkKIAlzdGFydCA9IGNsb2NrKCk7Cglmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgTjsgKytpKSB7CgkJdGhyb3dhd2F5ICs9IGcoaSk7CgkJdGhyb3dhd2F5IC09IGk7Cgl9CiAJZW5kID0gY2xvY2soKTsKCWNvdXQgPDwgIkJ5IHJlZjogIiA8PCAoZW5kIC0gc3RhcnQpIDw8ICIgdGlja3MiIDw8IGVuZGw7CgkKCWNvdXQgPDwgIlRocm93YXdheSAodG8gc3RvcCBvcHRpbWlzYXRpb24pID0gIiA8PCB0aHJvd2F3YXkgPDwgZW5kbDsKCXJldHVybiAwOwp9
-
upload with new input
-
result: Success time: 1.55s memory: 2680 kB returned value: 0
Loop time: 190000 ticks By value: 540000 ticks By ref: 810000 ticks Throwaway (to stop optimisation) = 3649838848


