NHibernate は EF よりも速いと思いました。しかし、このコードを見ると、EF は約 1 秒ですが、Nhibernate は約 2~4 秒です。クエリに何か問題がありますか?
要点リンク: https://gist.github.com/d271f4ca0276cca7d481
それは単一のテーブルであり、リンクも他との関係もありませんが、30 万行のデータだけです。
MySQL.EF5、NHibernate 3.3。
NHibernate は EF よりも速いと思いました。しかし、このコードを見ると、EF は約 1 秒ですが、Nhibernate は約 2~4 秒です。クエリに何か問題がありますか?
要点リンク: https://gist.github.com/d271f4ca0276cca7d481
それは単一のテーブルであり、リンクも他との関係もありませんが、30 万行のデータだけです。
MySQL.EF5、NHibernate 3.3。
テストで使用したクエリに問題はありません。テストで重要なのは、NHibernateのターゲットユースケースの範囲外であるバルク処理操作を測定することです。
また、NHibernateはパフォーマンスを最重要目標とはしておらず、そのパラメーターのみで評価するべきではありません。つまり、パフォーマンスが最も重要な要素である場合は、より単純なものを使用したほうがよい場合があります。
NHibernate での私の経験から、問題は、ISessionFactory の作成に最も時間がかかることです。すべてのマッピングが行われ、キャッシュが初期化されます。
また、NHibernate を使用したクエリは、EF とは別の方法で機能します。EF は「Linq」式ツリーをコンパイルし、使用されたドライバーに基づいて SQL ステートメントを構築します。
NHibernate では、独自の構文でクエリを自分で記述します。EF と比較すると、これは低速です。
それが私が作った経験です。たぶん、他の人がもっと深く掘り下げることができます。