예제 #1
0
        public void When_creating_and_releasing_100_objects_over_x_iterations_it_should_be_quicker_to_use_a_recycle_collection(
            [Values(100, 1000, 10000)]
            int numberOfIterations)
        {
            // Arrange
            var recycleBin        = new RecycleBin <object>(NUMBER_OF_OBJECTS_PER_ITERATION);
            var recycleCollection = new RecycleCollection <object>(recycleBin, new List <object>(NUMBER_OF_OBJECTS_PER_ITERATION));
            var regularCollection = new List <object>(NUMBER_OF_OBJECTS_PER_ITERATION);

            // Act
            var recycleCollectionTime = Execute(numberOfIterations, regularCollection, () => new object());
            var regularCollectionTime = Execute(numberOfIterations, recycleCollection, recycleBin.GetInstance);

            // Assert
            Console.WriteLine($@"
    Iterations: {numberOfIterations}
    Recycle:    {recycleCollectionTime}
    Regular:    {regularCollectionTime}
");
            Assert.That(regularCollectionTime, Is.GreaterThan(recycleCollectionTime));
        }
예제 #2
0
        //[Test]
        public void ExportTimes()
        {
            var file = new StreamWriter(File.Create(@"C:\MyProjects\SmartObjects\Test.csv"));

            for (int numberOfIterations = 0; numberOfIterations < MAX_NUMBER_OF_ITERATIONS; numberOfIterations += 10000)
            {
                // Arrange
                var recycleBin        = new RecycleBin <object>(NUMBER_OF_OBJECTS_PER_ITERATION);
                var recycleCollection = new RecycleCollection <object>(recycleBin, new List <object>(NUMBER_OF_OBJECTS_PER_ITERATION));
                var regularCollection = new List <object>(NUMBER_OF_OBJECTS_PER_ITERATION);

                // Act
                var recycleCollectionTime = Execute(numberOfIterations, regularCollection, () => new object());
                var regularCollectionTime = Execute(numberOfIterations, recycleCollection, recycleBin.GetInstance);

                // Assert
                file.WriteLine($"{numberOfIterations};{recycleCollectionTime};{regularCollectionTime}");
            }
            file.Flush();
            file.Close();
        }