0

何週間も頭を悩ませている状況があります。データベースが実行されるたびに(約20回)、データベースとの間で少しやり取りするロジックを実行しています。問題は、同じコードが約半分の時間で機能することです。実行パフォーマンスの違いの理由は何でしょうか?また、この問題をチェックするにはどうすればよいでしょうか?

4

1 に答える 1

0

関数が同じ入力が与えられるたびに同じ方法で同じ結果を返す場合、その関数は決定論的関数と呼ばれます。たとえば、SquareRoot() は決定論的です (またはそうあるべきです)。同じ方法で呼び出されるたびに異なる値または潜在的に異なる値で応答する場合、それは非決定論的関数です。たとえば、Now() は非決定論的であり、呼び出されるたびに異なる時間値を提供します。

あなたのプログラムは非決定論的です。典型的な種類の非決定論的動作についてコードを調べます。つまり、タイマー、リソース リーク、ネットワーク タイムアウトなどです。

于 2010-09-25T03:43:52.033 に答える