#include <iostream>
#include <chrono>
struct Foo {};
int main()
{
const std::size_t N = 100000000;
// struct
auto start = std::chrono::steady_clock::now();
volatile Foo a;
for (std::size_t i = 0 ; i < N; ++i)
a;
auto end = std::chrono::steady_clock::now();
std::cout << std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count()
<< " ms" << std::endl;
// int
start = std::chrono::steady_clock::now();
volatile int b;
for (std::size_t i = 0 ; i < N; ++i)
b;
end = std::chrono::steady_clock::now();
std::cout << std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count()
<< " ms" << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y2hyb25vPgoKc3RydWN0IEZvbyB7fTsKCmludCBtYWluKCkKewogICAgY29uc3Qgc3RkOjpzaXplX3QgTiA9IDEwMDAwMDAwMDsKCiAgICAvLyBzdHJ1Y3QKICAgIGF1dG8gc3RhcnQgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKTsKICAgIHZvbGF0aWxlIEZvbyBhOwogICAgZm9yIChzdGQ6OnNpemVfdCBpID0gMCA7IGkgPCBOOyArK2kpCiAgICAgICAgYTsKICAgIGF1dG8gZW5kID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7CiAgICBzdGQ6OmNvdXQgPDwgc3RkOjpjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8c3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcz4oZW5kIC0gc3RhcnQpLmNvdW50KCkKICAgICAgICAgICAgICA8PCAgIiBtcyIgPDwgc3RkOjplbmRsOwoKICAgIC8vIGludAogICAgc3RhcnQgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKTsKICAgIHZvbGF0aWxlIGludCBiOwogICAgZm9yIChzdGQ6OnNpemVfdCBpID0gMCA7IGkgPCBOOyArK2kpCiAgICAgICAgYjsKICAgIGVuZCA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpOwogICAgc3RkOjpjb3V0IDw8IHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM+KGVuZCAtIHN0YXJ0KS5jb3VudCgpCiAgICAgICAgICAgICAgPDwgICIgbXMiIDw8IHN0ZDo6ZW5kbDsKfQ==