2016-05-10 4 views
-4

内部キャストをやって、私は、LINQ文のように似ています。とにかく、私のデザインの決定ではありません。LINQのペナルティ

並べ替えを実行するには、並べ替えが正しく動作するために、ExpirationDateの文字列表現をDateTimeにキャストする必要があります。

主に、誰かがLINQクエリ内で(Convert.ToDateTime経由で)キャストのパフォーマンスへの影響を知っているのだろうかと思いましたか?何かあれば?

+2

簡単に測定できませんか?それがあなたのために十分に速いかどうかを試していない場合、なぜパフォーマンスについて気にしますか? –

+0

何に比べて? – juharr

+0

私は問題はないと思っています、それはLINQが行うこと、キャスティング、マッピング、変換などです。そのため、lambdaを使用しています。それは実際に文脈や操作がどれくらい早く完了すると予想されるかによって変わります –

答えて

-1

私はこの質問に対する満足のいく答えがどのように見えるか分かりませんが、linqを使ってdatetimeとstringに単純なラッパーをソートするパフォーマンスを測定しました。

Average Ticks Per Run 
DWrapper: 1078.5965 
SWrapper: 4060.6365 

あなたが見ることができるように、私にとって平均して、キャストを使用するのに4倍の時間がかかりました。これは、これが他の方法よりも4倍遅いことを誰にも伝える理由ではないと私のラッパーは信じられないほど軽量で、この種の他の問題はもちろんのこと、ここに見られる結果に大きな影響を与えますパフォーマンス測定の

注:

  • 時間測定がSystem.Diagnostics.Stopwatchで行われました。
  • クロム、ビジュアルスタジオ、およびその他の大規模アプリケーションを実行している大声のマシンでテストを実行しました。
  • 同じランダマイズされた日付で構築された2,000個のサイズの2つのリストで10,000回の実行を行った。
  • DateTimeオブジェクトの文字列表現は、DateTime.ToLongDateStringメソッドを使用して行われました。
  • ラッパークラスには、単一のDateTimeまたは文字列が含まれています。
  • リリースモードでコンパイルされたテストコード。
関連する問題