using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace A
{
struct MyStruct { public string X; public string Y; public string O; }
class MyClass { public string X; public string Y; public string O; }
class Program
{
static void Main(string[] args)
{
fooY();
fooZ();
Console.ReadKey();
}
private static void fooY()
{
var sw = new System.Diagnostics.Stopwatch();
sw.Start();
for (int k = 0; k < 100; k++)
for (int i = 0; i < 10000; i++)
{
var t = new MyStruct(); t.X = "aaaa"; t.Y = "bbbb"; t.O = t.X + t.Y;
};
sw.Stop();
Console.WriteLine("MyStruct : {0}", sw.ElapsedMilliseconds);
}
private static void fooZ()
{
var sw = new System.Diagnostics.Stopwatch();
sw.Start();
for (int k = 0; k < 100; k++)
for (int i = 0; i < 10000; i++)
{
var t = new MyClass(); t.X = "aaaa"; t.Y = "bbbb"; t.O = t.X + t.Y;
};
sw.Stop();
Console.WriteLine("MyClass : {0}", sw.ElapsedMilliseconds);
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UZXh0OwoKbmFtZXNwYWNlIEEKewogICAgc3RydWN0IE15U3RydWN0IHsgcHVibGljIHN0cmluZyBYOyBwdWJsaWMgc3RyaW5nIFk7IHB1YmxpYyBzdHJpbmcgTzsgfQogICAgY2xhc3MgTXlDbGFzcyB7IHB1YmxpYyBzdHJpbmcgWDsgcHVibGljIHN0cmluZyBZOyBwdWJsaWMgc3RyaW5nIE87IH0KCiAgICBjbGFzcyBQcm9ncmFtCiAgICB7CiAgICAgICAgc3RhdGljIHZvaWQgTWFpbihzdHJpbmdbXSBhcmdzKQogICAgICAgIHsKICAgICAgICAgICAgZm9vWSgpOwogICAgICAgICAgICBmb29aKCk7CiAgICAgICAgICAgIENvbnNvbGUuUmVhZEtleSgpOwogICAgICAgIH0KCiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBmb29ZKCkKICAgICAgICB7CiAgICAgICAgICAgIHZhciBzdyA9IG5ldyBTeXN0ZW0uRGlhZ25vc3RpY3MuU3RvcHdhdGNoKCk7CiAgICAgICAgICAgIHN3LlN0YXJ0KCk7CiAgICAgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgMTAwOyBrKyspCiAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwMDAwOyBpKyspCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHQgPSBuZXcgTXlTdHJ1Y3QoKTsgdC5YID0gImFhYWEiOyB0LlkgPSAiYmJiYiI7IHQuTyA9IHQuWCArIHQuWTsKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIHN3LlN0b3AoKTsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIk15U3RydWN0IDogezB9Iiwgc3cuRWxhcHNlZE1pbGxpc2Vjb25kcyk7CiAgICAgICAgfQoKICAgICAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGZvb1ooKQogICAgICAgIHsKICAgICAgICAgICAgdmFyIHN3ID0gbmV3IFN5c3RlbS5EaWFnbm9zdGljcy5TdG9wd2F0Y2goKTsKICAgICAgICAgICAgc3cuU3RhcnQoKTsKICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCAxMDA7IGsrKykKICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTAwMDA7IGkrKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdmFyIHQgPSBuZXcgTXlDbGFzcygpOyB0LlggPSAiYWFhYSI7IHQuWSA9ICJiYmJiIjsgdC5PID0gdC5YICsgdC5ZOwogICAgICAgICAgICB9OwogICAgICAgICAgICBzdy5TdG9wKCk7CiAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJNeUNsYXNzIDogezB9Iiwgc3cuRWxhcHNlZE1pbGxpc2Vjb25kcyk7CiAgICAgICAgfQogICAgfQp9CgoK