You are here: Advanced Features > System Info

System Info

You can ask the object container for basic system information. Following information can be accessed:

Freespace Size

long freeSpaceSize = container.Ext().SystemInfo().FreespaceSize();
Console.WriteLine("Freespace in bytes: {0}", freeSpaceSize);
SystemInfoExamples.cs: Freespace size info
Dim freeSpaceSize As Long = container.Ext().SystemInfo().FreespaceSize()
Console.WriteLine("Freespace in bytes: {0}", freeSpaceSize)
SystemInfoExamples.vb: Freespace size info

Returns the freespace size in the database in bytes. When db4o stores modified objects, it allocates a new slot for it. During commit the old slot is freed. Free slots are collected in the freespace manager, so they can be reused for other objects.

This method returns a sum of the size of all free slots in the database file.

To reclaim freespace run Defragment.

Freespace Entry Count

int freeSpaceEntries = container.Ext().SystemInfo().FreespaceEntryCount();
Console.WriteLine("Freespace-entries count: {0}", freeSpaceEntries);
SystemInfoExamples.cs: Freespace entry count info
Dim freeSpaceEntries As Integer = container.Ext().SystemInfo().FreespaceEntryCount()
Console.WriteLine("Freespace-entries count: {0}", freeSpaceEntries)
SystemInfoExamples.vb: Freespace entry count info

Returns the number of entries in the Freespace Manager.A high value for the number of freespace entries is an indication that the database is fragmented and that Defragment should be run.

Total Size

long databaseSize = container.Ext().SystemInfo().TotalSize();
Console.WriteLine("Database size: {0}", databaseSize);
SystemInfoExamples.cs: Database size info
Dim databaseSize As Long = container.Ext().SystemInfo().TotalSize()
SystemInfoExamples.vb: Database size info

Returns the total size of the database on disk.