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 (int 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 (int 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);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uRGlhZ25vc3RpY3M7CgogICAgc3RydWN0IFN0cnVjdAogICAgewogICAgICAgIHB1YmxpYyBmbG9hdCBYOwogICAgICAgIHB1YmxpYyBmbG9hdCBZOwoKICAgICAgICBwdWJsaWMgU3RydWN0KGZsb2F0IHgsIGZsb2F0IHkpCiAgICAgICAgewogICAgICAgICAgICBYID0geDsgWSA9IHk7CiAgICAgICAgfQogICAgfQoKICAgIGNsYXNzIEhvZ2UKICAgIHsKICAgICAgICBjb25zdCBpbnQgQ291bnQgPSAxMDAwICogMTAwMDA7CgogICAgICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKICAgICAgICB7CiAgICAgICAgICAgIFN0cnVjdCBzID0gZGVmYXVsdChTdHJ1Y3QpOwoKICAgICAgICAgICAgU3RvcHdhdGNoIHN3ID0gbmV3IFN0b3B3YXRjaCgpOwogICAgICAgICAgICBzdy5TdGFydCgpOwoKICAgICAgICAgICAgZmxvYXQgdG90YWwgPSAwOwoKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBDb3VudDsgKytpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBzID0gbmV3IFN0cnVjdChpLCBpICogMik7CiAgICAgICAgICAgICAgICB0b3RhbCArPSBzLlg7CiAgICAgICAgICAgICAgICB0b3RhbCArPSBzLlk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHN3LlN0b3AoKTsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIiIgKyB0b3RhbCArICIgIiArIHMuWSArICIgICIgKyBzdy5FbGFwc2VkTWlsbGlzZWNvbmRzKTsKCiAgICAgICAgICAgIHN3LlJlc2V0KCk7CiAgICAgICAgICAgIHN3LlN0YXJ0KCk7CgogICAgICAgICAgICB0b3RhbCA9IDA7CgogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IENvdW50OyArK2kpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHMuWCA9IGk7CiAgICAgICAgICAgICAgICBzLlkgPSBpICogMjsKCiAgICAgICAgICAgICAgICB0b3RhbCArPSBzLlg7CiAgICAgICAgICAgICAgICB0b3RhbCArPSBzLlk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHN3LlN0b3AoKTsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIiIgKyB0b3RhbCArICIgIiArIHMuWSArICIgICIgKyBzdy5FbGFwc2VkTWlsbGlzZWNvbmRzKTsKICAgICAgICB9CiAgICB9