public void CopyToTest()
        {
            const int iterationCount = 10000000;
            Random    random         = RandomManager.CreateRandom(SeedVariatorType.CallingMethod);

            Xtensive.Tuples.Tuple tuple = Xtensive.Tuples.Tuple.Create(10, 20, 234.456f, 2345.34534d, "aaaaaaaaaaa", DateTime.Now);
            var hashCode = tuple.GetHashCode();
            var copy     = tuple.CreateNew();

            // Warmup
            for (int i = 0; i < iterationCount / 10; i++)
            {
                tuple.CopyTo(copy);
            }

            // Actual run
            TestHelper.CollectGarbage(true);
            // TestLog.Info("Get ready...");
            using (new Measurement("Copying tuples", MeasurementOptions.Log, iterationCount)) {
                for (int i = 0; i < iterationCount; i++)
                {
                    tuple.CopyTo(copy);
                }
            }
        }
        public void CreateExistingTupleTest()
        {
            const int       iterationCount = 10000000;
            TupleDescriptor descriptor     = TupleDescriptor.Create(typicalFieldTypes);

            Xtensive.Tuples.Tuple tuple = Xtensive.Tuples.Tuple.Create(descriptor);
            using (new Measurement("CreateNew", iterationCount))
                for (int i = 0; i < iterationCount; i++)
                {
                    tuple.CreateNew();
                }
            using (new Measurement("TupleDescriptor.CreateTuple", iterationCount))
                for (int i = 0; i < iterationCount; i++)
                {
                    Xtensive.Tuples.Tuple.Create(descriptor);
                }
        }