You are here: Tuning > Main Operations Performance > Update Performance > Hard Drive Speed

Hard Drive Speed

Update db4o operation requires disk access and therefore is very dependent on the disk speed. To emulate a different drive speed we will use a RAMDISK utility, which creates an alternative storage media in the memory.

UpdatePerformanceBenchmark.cs: RunHardDriveTest
private void RunHardDriveTest()
         {
            System.Console.WriteLine("Update test: hard drive");
            int objectsToUpdate = 90;

            InitForHardDriveTest();
            Clean();
            Open(ConfigureDriveTest());
            Store();
            System.Console.WriteLine("Updating  " + objectsToUpdate + 
" objects on a hard drive:");
            UpdateItems(objectsToUpdate);
            Close();
        }
UpdatePerformanceBenchmark.cs: InitForHardDriveTest
private void InitForHardDriveTest()
         {
            _count = 10000;
            _depth = 3;
            _filePath = "performance.db4o";
            _isClientServer = false;
        }
UpdatePerformanceBenchmark.cs: RunRamDiskTest
private void RunRamDiskTest()
         {
            System.Console.WriteLine("Update test: RAM disk");
            int objectsToUpdate = 90;
            InitForRamDriveTest();
            Clean();
            Open(ConfigureDriveTest());
            Store();
            System.Console.WriteLine("Updating  " + objectsToUpdate 
+ " objects on a RAM drive:");
            UpdateItems(objectsToUpdate);
            Close();
        }
UpdatePerformanceBenchmark.cs: InitForRamDriveTest
private void InitForRamDriveTest()
         {
            _count = 30000;
            _depth = 1;
            _filePath = "r:\\performance.db4o";
            _isClientServer = false;

        }
UpdatePerformanceBenchmark.cs: ConfigureDriveTest
private IConfiguration ConfigureDriveTest()
         {
            IConfiguration config = Db4oFactory.NewConfiguration();
            config.FlushFileBuffers(true);
            return config;
        }

The results:

Update test: hard drive

Store 30000 objects: 2884ms

Updating 90 objects on a hard drive:

Updated 90 items: 250ms

Update test: RAM disk

Store 30000 objects: 1910ms

Updating 90 objects on a RAM drive:

Updated 90 items: 105ms

The test shows that the faster media (RAMDISK) shows better performance on update.

Download example code:

c#