カスタムキャッシュ実装のバックエンドとして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;
}
このシナリオでパフォーマンスを改善する方法について誰かがアドバイスを提供できますか?