0
我有一些使用SQLite.Net-PCL作爲後備存儲的自動化測試。我發現,而不是使用一個實際的文件,你可以通過在「:記憶:」作爲連接字符串的路徑,創建一個內存數據庫,像這樣:SQLite.NET內存(:內存:)數據庫比基於文件的數據庫慢很多
public class MyRepositoryService : SQLiteAsyncConnection
{
public MyRepositoryService()
: base(() => new SQLiteConnectionWithLock(
new SQLitePlatformGeneric(),
new SQLiteConnectionString(
":memory:",
false)
))
{
}
}
出乎我的意料,這比使用普通文件慢得多。在文件中需要大約100ms的測試需要1分鐘以上的內存。爲什麼?
不僅如此,但我的測試多突然開始時,我切換到內存數據庫失敗 - 大部分似乎與永遠不會被創建
表我是真的被迫使用一個文件 - 基於數據庫爲我的unittests?
我不認爲這是性能下降的原因。我也爲每個測試清除並重新創建基於文件的數據庫 – user1202032