我希望使用db4o作为自定义缓存实现的后端。通常,我的程序需要将大约4000万个对象加载到内存中并同时处理它们。显然,这需要大量的内存,因此我考虑将一些对象(不在缓存中的对象)持久化到db4o数据库中。我的初步测试显示,db4o的速度比我想象的要慢一些(大约需要17分钟来保存100万个对象)。但是,我只是使用了最基本的设置。
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;
}
有人能提供关于如何在这种情况下提高性能的建议吗?