EF 5のベンチマーク

ado.net c# dapper entity-framework ibatis

質問

Dapperコミュニティが作成したパフォーマンステストに従っています

現在、テストを10000回実行した後、次のようになります。

  • EF 5 = 21595ms
  • ADO.NET = 52183 ms
  • Dapper = 52499 ms
  • iBatis = 83138 ms

EFがなぜより速いのか理解するのに役立つものが必要です。 私は何を間違えたのですか?

私が使用しているコードはGithubにあります

ありがとう!!!

エキスパート回答

まず、EFは間違いなく高速化しました。多くの時間をかけてパフォーマンスを向上させました。検討してください:EFはADO.NETの上に座っています。 EFがADO.NET よりもはるかに高速な結果を報告しているなら、あなたはすでにあなたがこれを疑っていると思います。

私はここで重要な問題は、あなたが同じデータコンテキストのすべての操作を実行していることである疑いがあります 。これはおそらく、アイデンティティマネージャとキャッシュを強調している可能性が高いことを意味します。私はあなたのコードを直接実行することはできません(Oracleなどを使用しているため)が、実行される実際のクエリを表示することは興味深いでしょう。現実世界での使用では、各データコンテキストには有限の単位作業時間があります。同じデータ・コンテキストで10,000の操作を実行することは非常にまれです。より典型的なのは、いくつかの操作です。

しかし、無関係です:私はDAOが生のADO.NETのパフォーマンスの0.6%以内であることを示すあなたの結果に非常に満足しています。これは基本的に、私たちがdapperを使って進めていたことです:生のADO.NETの完全なパフォーマンスですが、単純にコード化の苦痛を取り除きます。



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow