J'ai quelques tests automatisés qui utilisent SQLite.Net-PCL en tant que banque de support. Je trouve qu'au lieu d'utiliser un fichier réel, vous pouvez passer « : mémoire: » comme le chemin pour la chaîne de connexion, pour créer une mémoire de la base de données comme ceci:SQLite.NET en-mémoire (: memory :) base de données BEAUCOUP plus lent que la base de données basée sur les fichiers
public class MyRepositoryService : SQLiteAsyncConnection
{
public MyRepositoryService()
: base(() => new SQLiteConnectionWithLock(
new SQLitePlatformGeneric(),
new SQLiteConnectionString(
":memory:",
false)
))
{
}
}
À ma grande surprise, ce est beaucoup plus lent que d'utiliser un fichier normal. Un test qui prend ~ 100ms dans un fichier prend plus d'une minute avec la mémoire. Pourquoi?
Non seulement cela, mais plusieurs de mes tests commencent soudainement à défaut quand je passe à la base de données en mémoire - la plupart semblent être en rapport avec les tables ne sont créés
Suis-je vraiment obligé d'utiliser un Fichier- base de données basée pour mes tests unittle?
Je ne pense pas que ce soit la cause de la lenteur des performances. J'efface et recréer la base de données basée sur des fichiers pour chaque test – user1202032