Ich habe einige automatisierte Tests, die SQLite.Net-PCL als Backing Store verwenden. Ich fand, dass stattdessen eine tatsächliche Datei zu verwenden, können Sie passieren in „: memory:“ als Pfad für die Verbindungszeichenfolge, eine In-Memory-Datenbank wie so zu erstellen:SQLite.NET In-Memory (: Speicher :) Datenbank VIEL langsamer als dateibasierte Datenbank
public class MyRepositoryService : SQLiteAsyncConnection
{
public MyRepositoryService()
: base(() => new SQLiteConnectionWithLock(
new SQLitePlatformGeneric(),
new SQLiteConnectionString(
":memory:",
false)
))
{
}
}
Zu meiner großen Überraschung, dies ist viel langsamer als mit einer normalen Datei. Ein Test, der ~ 100ms in einer Datei dauert, dauert 1 Minute mit In-Memory. Warum?
Nicht nur das, sondern mehrere meiner Tests plötzlich versagt beginnen, wenn ich auf die In-Memory-Datenbank wechseln - die meisten scheinen nie einen File- verwenden
zu den Tabellen bezogen zu werdenBin ich wirklich gezwungen erstellt werden Datenbank für meine Unittests?
Ich glaube nicht, dass dies die Ursache für die langsame Leistung ist. Ich lösche und neu erstellen Sie die dateibasierte Datenbank für jeden Test – user1202032