public static void Main() { //SomeClass source = CreateData(); //source = Clone.ObjectGraph(source); //Console.WriteLine(source.Property.Sum(x => x.field.Length)); var source = new SomeClass4 { field = 42, Property = new SomeClass3 { Property = new SomeClass2 { field = "string" } } }; for (int i = 0; i < 2000000; ++i) { source = Clone.ObjectGraph(source); } Console.WriteLine(source.Property.Property.field.Length); }