2016-08-20 6 views
-1

私はasp.netアプリケーションを持っており、パフォーマンスを最適化しようとしています。 BitArray.Getメソッドのパフォーマンスで1つの問題が見つかりました。実行時間は、と100〜250msとは異なります。です。あまりにも挑戦的です。このメソッドはIEnumerable.FirstOrDefaultの内部で呼び出されました。なぜこのようなことが起こり、どのように最適化するのかという考えはありますか?.net BitArray.Getパフォーマンスの問題

enter image description here

UPD

このメソッド呼び出しは、EFのマテリア中に表示されます。同じトレースのもう1つの例:enter image description here

メソッド処理時間がわずか1msの他の例もあります。

+0

このツリーの両方の呼び出しは不可能です。このデータはどこにありますか? – usr

+3

アプリケーション全体のCPU使用量のうち、0.01%を最適化していますか?最初に捕まえるには大きな魚が必要です。 –

+1

この文脈を見ておくと便利です。あなたのコードを教えてください。たぶん誰かがそれを最適化することができます。 252msはそれを1,158,375回呼び出す時間ですか? –

答えて

2

あなたは誤った解釈をしています。

BitArray.Get()は、最初の画像に比べて約3倍の時間がかかり、通話回数も約3倍(約1.2mioに比べて約3.1mio)です。したがって、私は、1つの呼び出しだけではなく、これらの何百万もの呼び出しをms単位で表していると結論づけています。いずれの場合も、1コールあたりの時間は、コールあたり約200ns(218および201 ns)です。 8.4%の違いがあります。これはかなり一貫しています。

BitArray.Get()は、あなたが思ったよりも1mio倍速いです!

関連する問題