コードが最適化されたテール コールの場合、最適化されていないコードと比較して、パフォーマンス/複雑性が優れているか、CPU リソースの消費が少ないか、それともメモリのみを節約し、他には何も節約しないか?
1 に答える
3
特定のプロセッサの仕様を調べるのは良い考えかもしれませんが、一般的な観点からすると、テール コールをなくすとパフォーマンスが向上します。
- 新しいスタック フレームは割り当てられません
- ネストされた呼び出しは、現在の呼び出しではなく、現在の呼び出しの呼び出し元に直接返され、その後で元の呼び出し元に返されます。
- メモリ割り当てが少ないということは、CPU キャッシュをより有効に使用することを意味します
- メモリ割り当てが少ないということは、スタックが大きすぎる場合にページングまたはロードが必要になる可能性があるメインメモリをより適切に使用できることを意味します
ただし、最新のプロセッサは、これらの操作によって発生するオーバーヘッドを削減できます。
于 2012-11-10T14:35:08.003 に答える