.NET: configuration.File.Freespace.DiscardSmallerThan(byteCount)
Configures the minimum size of free space slots in the database file that are to be reused.
2 extremes for byteCount value:
Allows fine-tuning of performance/size relation for your environment.
When objects are updated or deleted, the space previously occupied in the database file is marked as "free", so it can be reused. db4o maintains two lists in RAM, sorted by address and by size. Adjacent entries are merged. After a large number of updates or deletes have been executed, the lists can become large, causing RAM consumption and performance loss for maintenance. With this method you can specify an upper bound for the byte slot size to discard.
Regular defragment will also keep the number of free space slots small. See:
.NET: Db4objetcs.Db4o.Defragment.Defragment
If defragment can be frequently run, it will also reclaim lost space and decrease the database file to the minimum size. Therefore #discardSmallerThan(maxValue) may be a good tuning mechanism for setups with frequent defragment runs.