以下は私の関数定義です
def func_a():
return 1
def func_b(val1):
return val1*2
そして、これは関数を呼び出す 1 つの方法です。
count = 0
while count < 10000000:
val2 = func_b(func_a())
count += 1
上記の所要時間は次のとおりです。
real 0m5.003s
user 0m4.989s
sys 0m0.012s
同じ関数定義を使用した以下の使用法:
count = 0
while count < 10000000:
ret1 = func_a()
val2 = func_b(ret1)
count += 1
かかった時間は
real 0m5.502s
user 0m5.414s
sys 0m0.010s
私はそれぞれ約10回実行しましたが、2つの間のリアルタイムの差は常に〜300〜500ミリ秒でした.
一方、sys 時間は通常、約 1 ~ 2 ミリ秒の差でした。(最大約 10 ミリ秒)。
私が使用しているアプリケーションは、ミリ秒未満のパフォーマンスで約 60 ~ 90,000 のトランザクションを処理するため、これは私にとっては大きな問題です。2 つの呼び出しにこれほど大きな違いがあるのはなぜでしょうか。
編集注:以下の回答は、質問の改訂後はあまり関係ありません。元の質問の質問編集を参照してください。