0

NHibernate は EF よりも速いと思いました。しかし、このコードを見ると、EF は約 1 秒ですが、Nhibernate は約 2~4 秒です。クエリに何か問題がありますか?

要点リンク: https://gist.github.com/d271f4ca0276cca7d481

それは単一のテーブルであり、リンクも他との関係もありませんが、30 万行のデータだけです。

MySQL.EF5、NHibernate 3.3。

4

2 に答える 2

1

テストで使用したクエリに問題はありません。テストで重要なのは、NHibernateのターゲットユースケースの範囲外であるバルク処理操作を測定することです。

また、NHibernateはパフォーマンスを最重要目標とはしておらず、そのパラメーターのみで評価するべきではありません。つまり、パフォーマンスが最も重要な要素である場合は、より単純なものを使用したほうがよい場合があります。

于 2013-01-19T09:34:37.900 に答える
0

NHibernate での私の経験から、問題は、ISessionFactory の作成に最も時間がかかることです。すべてのマッピングが行われ、キャッシュが初期化されます。

また、NHibernate を使用したクエリは、EF とは別の方法で機能します。EF は「Linq」式ツリーをコンパイルし、使用されたドライバーに基づいて SQL ステートメントを構築します。

NHibernate では、独自の構文でクエリを自分で記述します。EF と比較すると、これは低速です。

それが私が作った経験です。たぶん、他の人がもっと深く掘り下げることができます。

于 2013-01-18T23:27:44.150 に答える