我想使用 db4o 作为自定义缓存实现的后端。通常,我的程序涉及将大约 40,000,000 个对象加载到内存中并同时处理它们。显然这需要大量内存,我想也许将一些对象(不在缓存中的对象)持久化到 db4o 数据库中。我的初步测试表明 db4o 比我想要的要慢一些(大约 1,000,000 个对象需要 17 分钟才能保持)。但是,我使用的是最基本的设置。
我正在做这样的事情:
using (var reader = new FileUnitReader(Settings, Dictionary, m_fileNameResolver, ObjectFactory.Resolve<DataValueConverter>(), ObjectFactory.Resolve<UnitFactory>()))
using (var db = Db4oEmbedded.OpenFile(Db4oEmbedded.NewConfiguration(), path))
{
var timer = new Stopwatch();
timer.Start();
IUnit unit = reader.GetNextUnit();
while (unit != null)
{
db.Store(unit);
unit = reader.GetNextUnit();
}
timer.Stop()
db.Close();
var elapsed = timer.Elapsed;
}
任何人都可以就如何在这种情况下提高性能提供建议吗?