developer's diary

最近はc#のエントリが多いです

C# (dotnetcore) Microsoft.Data.Sqlite と System.Data.SQLite の速度比較

前回の記事で作成したプログラムを1000回繰り返してどちらが早いか比較

mitsugeek.net

ソース

        private static void Main(string[] args)
        {
            //Microsoft.Data.Sqlite + SQLitePCLRaw.bundle_e_sqlite3
            System.Diagnostics.Stopwatch sw;

            sw = new System.Diagnostics.Stopwatch();
            Console.WriteLine("Microsoft.Data.Sqlite");
            sw.Start();
            for (var i=1; i <= 1000; i++)
            {
                MicrosoftDataSqliteExample();
            }
            sw.Stop();
            Console.WriteLine("{0:#,0}",sw.ElapsedMilliseconds);

            //System.Data.SQLite
            sw = new System.Diagnostics.Stopwatch();
            Console.WriteLine("System.Data.SQLite");
            sw.Start();
            for (var i = 1; i <= 1000; i++)
            {
                SystemDataSQLiteExample();
            }
            sw.Stop();
            Console.WriteLine("{0:#,0}", sw.ElapsedMilliseconds);
        }

3本勝負

1回目

Microsoft.Data.Sqlite
7,643
System.Data.SQLite
8,185

2回目

Microsoft.Data.Sqlite
7,300
System.Data.SQLite
8,039

3回目

Microsoft.Data.Sqlite
7,408
System.Data.SQLite
8,029

結果

Microsoft.Data.Sqliteの方が結果がよかったです。

INSERT1000回を10回で比較

元のプログラムに、INSERT1000回するようプログラムを修正して、全体を10回行うことで比較しました。 こちらも、Microsoft.Data.Sqliteの方が結果がよかったです。

Microsoft.Data.Sqlite
9,148
System.Data.SQLite
9,151
Microsoft.Data.Sqlite
9,154
System.Data.SQLite
9,246
Microsoft.Data.Sqlite
9,054
System.Data.SQLite
9,081