0

実行時間を測定して、特にフィボナッチの 3 つの実装 (再帰、lru_cache、および線形 (線形空間を使用)) を比較して、いくつかの小さな実験を行いたいと思いました。無限再帰を作成する方法で誤って lru_ache バージョンを実装しました。

@lru_cache(None)
def fibo_cache(n):
    return fibo_cache(n)

(本来は再帰版を再利用したかったのですが、再帰呼び出しにキャッシュが適用されないことがわかったので、これに変更しました)

これにより、プログラムはエラーやメッセージなしで単に停止しました。IDLE から起動した場合、RESTART: Shell回線を作成して REPL に戻ります

lru_cacheのドキュメント ページには、スクリプトを停止するという記述はありませんでした。

これは意図した動作ですか、それともバグの可能性がありますか?

編集:

再帰制限を sys 経由で 500_000 に設定しました。ただし、例外はまだあると思います。ドキュメントによると

制限が高すぎるとクラッシュする可能性があるため、これは慎重に行う必要があります。

しかし、メッセージが届かないとは言いません。ただし、これは事実かもしれません。

4

0 に答える 0