コンパイラはヒープメモリの割り当てを排除できますか?コンパイラは、不必要なステートメントの削除を含むコードを最適化する場合があります。コンパイラは、新しいものを使用して作成されたヒープメモリの割り当てを排除します。 (3.0)完全な最適化フラグがあっても、新しい呼び出しを最適化します。コンパイラは、観察可能な動作がある可能性があるため、新しいコールを最適化することを許可されていないと主張する人もいます(例:例外をスローする)。他の人は、コンパイラが観察可能な動作が影響を受けることがないことを保証できる場合、新しい通話を最適化することが許可されていると主張します。これにより、コンパイラは特定のシナリオでメモリの割り当てを最適化できます。ただし、この規定は因果関係に違反する可能性があるため批判されています。さまざまな翻訳ユニットの新しい実装は、ヒープの割り当てに関連するコンパイラの最適化の妥当性に影響を与える可能性があります。一部のコンパイラはN3664に基づいてこの最適化を実装していますが、その有効性は議論の対象のままであり、C標準やカスタムメモリアロケーターの存在を含む特定の状況に依存します。。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3