Еще одно небольшое улучшение, которое вы можете попробовать:
Получить расширенный интерфейс, добавив .Ext () к вызову OpenFile ().
Очистить каждый объект после того, как вы его сохранили.
using (var db = Db4oEmbedded.OpenFile(Db4oEmbedded.NewConfiguration(), path).Ext())
// ....
db.Store(unit);
db.Purge(unit);
// ....
Таким образом вы уменьшите количество ссылок, которые db4o должен поддерживать в текущей транзакции.
Вероятно, у вас есть наибольший потенциал для еще одного большого улучшения, если вы играете с конфигурацией хранилища (это подключаемая файловая система ниже db4o.) Последние сборки 8.0 имеют лучшую реализацию кэша, которая не снижает производительность для кэша.обслуживание при работе с большим количеством страниц кеша.
Я предлагаю вам попробовать последнюю версию 8.0 с установкой кеша, которую Гэмлор предложил посмотреть, если это имеет значение:
config.File.Storage = new CachingStorage(new FileStorage(), 128, 1024 * 4);
Если это произойдет, вы можете попробовать гораздо более высокие цифры:
config.File.Storage = new CachingStorage(new FileStorage(), 1280, 1024 * 40);