using System;
using System.Diagnostics;
struct Struct
{
public float X;
public float Y;
public Struct(float x, float y)
{
X = x; Y = y;
}
}
class Hoge
{
const int Count = 1000 * 10000;
public static void Main()
{
Struct s = default(Struct);
Stopwatch sw = new Stopwatch();
sw.Start();
float total = 0;
for (float i = 0; i < Count; ++i)
{
s = new Struct(i, i * 2);
total += s.X;
total += s.Y;
}
sw.Stop();
Console.WriteLine("" + total + " " + s.Y + " " + sw.ElapsedMilliseconds);
sw.Reset();
sw.Start();
total = 0;
for (float i = 0; i < Count; ++i)
{
s.X = i;
s.Y = i * 2;
total += s.X;
total += s.Y;
}
sw.Stop();
Console.WriteLine("" + total + " " + s.Y + " " + sw.ElapsedMilliseconds);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uRGlhZ25vc3RpY3M7CgogICAgc3RydWN0IFN0cnVjdAogICAgewogICAgICAgIHB1YmxpYyBmbG9hdCBYOwogICAgICAgIHB1YmxpYyBmbG9hdCBZOwoKICAgICAgICBwdWJsaWMgU3RydWN0KGZsb2F0IHgsIGZsb2F0IHkpCiAgICAgICAgewogICAgICAgICAgICBYID0geDsgWSA9IHk7CiAgICAgICAgfQogICAgfQoKICAgIGNsYXNzIEhvZ2UKICAgIHsKICAgICAgICBjb25zdCBpbnQgQ291bnQgPSAxMDAwICogMTAwMDA7CgogICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKICAgICAgICB7CiAgICAgICAgICAgIFN0cnVjdCBzID0gZGVmYXVsdChTdHJ1Y3QpOwoKICAgICAgICAgICAgU3RvcHdhdGNoIHN3ID0gbmV3IFN0b3B3YXRjaCgpOwogICAgICAgICAgICBzdy5TdGFydCgpOwoKICAgICAgICAgICAgZmxvYXQgdG90YWwgPSAwOwoKICAgICAgICAgICAgZm9yIChmbG9hdCBpID0gMDsgaSA8IENvdW50OyArK2kpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHMgPSBuZXcgU3RydWN0KGksIGkgKiAyKTsKICAgICAgICAgICAgICAgIHRvdGFsICs9IHMuWDsKICAgICAgICAgICAgICAgIHRvdGFsICs9IHMuWTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgc3cuU3RvcCgpOwogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiIiArIHRvdGFsICsgIiAiICsgcy5ZICsgIiAgIiArIHN3LkVsYXBzZWRNaWxsaXNlY29uZHMpOwoKICAgICAgICAgICAgc3cuUmVzZXQoKTsKICAgICAgICAgICAgc3cuU3RhcnQoKTsKCiAgICAgICAgICAgIHRvdGFsID0gMDsKCiAgICAgICAgICAgIGZvciAoZmxvYXQgaSA9IDA7IGkgPCBDb3VudDsgKytpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBzLlggPSBpOwogICAgICAgICAgICAgICAgcy5ZID0gaSAqIDI7CgogICAgICAgICAgICAgICAgdG90YWwgKz0gcy5YOwogICAgICAgICAgICAgICAgdG90YWwgKz0gcy5ZOwogICAgICAgICAgICB9CgogICAgICAgICAgICBzdy5TdG9wKCk7CiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCIiICsgdG90YWwgKyAiICIgKyBzLlkgKyAiICAiICsgc3cuRWxhcHNlZE1pbGxpc2Vjb25kcyk7CiAgICAgICAgfQogICAgfQ==