"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Os compiladores podem otimizar as chamadas `new 'em C ++?

Os compiladores podem otimizar as chamadas `new 'em C ++?

Postado em 2025-03-25
Navegar:875

Can Compilers Optimize Away `new` Calls in C  ?

O compilador pode eliminar as alocações de memória heap? Os compiladores podem otimizar o código, incluindo a remoção de declarações desnecessárias. Os compiladores podem eliminar as alocações de memória de heap feitas usando o novo?

Comportamento do compilador

pesquisa indica que diferentes compiladores lidam com alocações de heap. (3.0) Otimiza a nova chamada, mesmo com sinalizadores de otimização completos. Alguns argumentam que o compilador não tem permissão para otimizar novas chamadas, pois podem ter comportamento observável (por exemplo, lançando uma exceção). Outros afirmam que a otimização de novas chamadas é permitida se o compilador puder garantir que nenhum comportamento observável será afetado. Ele permite que os compiladores otimizem em torno de alocações de memória em determinados cenários. No entanto, a provisão foi criticada, pois potencialmente viola a causalidade. Novas implementações em diferentes unidades de tradução podem afetar a validade das otimizações do compilador relacionadas a alocações de heap. Enquanto alguns compiladores implementam essa otimização com base no N3664, sua validade continua sendo objeto de discussão e depende de circunstâncias específicas, incluindo o padrão C e a presença de alocadores de memória personalizada.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3