2

どのORMのパフォーマンスが速いかを理解しようとしていますか?

  • NHibernateサポートレベル2キャッシングは、そのパフォーマンスをEFまたはDapperと比較できますか?
  • EFコードは最初は有望に見えますが、EFのレベル2キャッシュサポートが組み込まれていますか?
  • DapperORMについてあまり知らない

誰かが私にこのORMの長所と短所、そしてアプリケーションのパフォーマンスを向上させるためにどちらを選択するかを説明してもらえますか?

4

1 に答える 1

27

EFやNHibernateなどの「大きな」ORMツールの問題は、99%の開発者が単にそれを機能させる方法を習得することに圧倒されていることです。彼らはそれを実行させる方法を理解する時間がありません。さらに悪いことに、これらのツールを適切に実行させることは、通常、有能なSQL/データベースの設計と調整のスキルを持っていることになります。これはORMの主要なセールスポイントを弱めます。

私の意見では、レベル2キャッシングの問題は、あまり使用されていないORMがもたらす他のパフォーマンスの低下によって隠されています。ORMを使用しているほとんどのプロジェクトは、(データベースを設計するという不十分な仕事とともに)それをうまく行っていないようです。そのため、レベル2のキャッシングはやや意味がありません。

結果として、MassiveやDapper(後者はStack Overflowで使用されます)のようなマイクロORMツールは非常に魅力的です。

  • マクロORMとは異なり、開発者はそれらの使用方法を学ぶのに何ヶ月も費やしません。各マイクロORMは、1,000行未満のコードです(犯罪者です!)。それを理解するのにどれくらい時間がかかるでしょうか?
  • 開発者が手にする余分な時間は、SQLの習得に専念することができ、マクロまたはマイクロORMをパフォーマンスで使用するために習得する必要があります。

明確にするために、よく使用されるマクロORMは素晴らしいことです。十分に使用されていることを確認するための経験豊富なスタッフがいますか?

肝心なのはこれです。本格的なORMがデータベースの複雑さを安全に隠すと思うなら、ほぼ間違いなく間違いです。選択肢があれば、マイクロORMを使用します。誤解しないでください。EFとNHIbernateは非常にクールで、それらを使用することに夢中になっていると思います。期待を管理する必要があると言っているだけです。

于 2012-09-12T02:23:54.297 に答える