2016-07-05 12 views
1

私はdapperを使い慣れていません(実際に使用しようとしています)。私はそれがどのように動作するのだろうかと思いました。いくつかの結果がキャッシュされるので、後で取得する方が速いです。 githubページでは、メモリ解放に関する何も言わない。私はこのナゲットの性能を認識していますが、メモリのオーバーフローやsthの危険はありませんか?キャッシュされたメモリは何らかの方法で解放されますか?dapper.netはキャッシュメモリを解放します

+1

「結果がキャッシュされるので、後で取得する方が速い」 - そうではありません。あなたのクエリと結果のためのメタプログラミングの結果をキャッシュします**形状**。実際の結果をキャッシュすることは決してありません。 –

答えて

0

Web層は、クエリの量のために、しばしば100%のCPUに達しました。毎秒数百の呼び出しで、すべての呼び出しに対して動的メソッドを構築するLINQからSQLへのCPUオーバーヘッドは、Webサーバーに多大な負担をかけました。
この問題を解決するために、Dapper.Netはすべてのクエリに関する情報をキャッシュします。この包括的なキャッシングは、LINQ to SQLの約2倍の速さでクエリからオブジェクトを生成するのに役立ちます。現在、キャッシュは2つのConcurrentDictionaryオブジェクトによって処理されますが、これは決してクリアされません。将来、キャッシュアルゴリズムはLRUキャッシュを使用してメモリの負荷を軽減することがあります。

+0

https://www.infoq.com/news/2011/04/dapper-released –

+1

これらの辞書のクリアには大きな問題があるかもしれません - それは私のリストにあります –

+0

私は他のORM –

関連する問題