Resultados da pesquisa a pedido "compiler-optimization"
Como ter o alias "constexpr and runtime"
Constexpr pode ser impressionante e útil para otimização de compilação. Por exemplo... strlen(char*)Pode ser pré-compilado usando .... constexpr inline size_t strlen_constexpr(char* baseChar) { return ( ( baseChar[0] == 0 ) ?(// if { 0 )// } ...
Bug ocorrendo apenas quando a otimização de compilação ativada
Me deparei com um bug no código que só é reproduzido quando o código é criado com as otimizações ativadas. Eu criei um aplicativo de console que replica a lógica do teste (código abaixo). Você verá que, quando a otimização está ativada, 'value' ...
Localizando o tamanho do bytecode de um método
Estou tentando descobrir o tamanho do bytecode de um método porque quero ter certeza de que ele será pequeno o suficiente para ser incorporado pelas otimizações do compilador. Vi que o tamanho máximo padrão para métodos embutidos é 35, portanto, ...
Os compiladores C ++ 11 transformam variáveis locais em rvalores quando podem durante a otimização de código?
Às vezes, é aconselhável dividir expressões longas ou complicadas em várias etapas, por exemplo (a segunda versão não é mais clara, mas é apenas um exemplo): return object1(object2(object3(x)));pode ser escrito como: object3 a(x); object2 b(a); ...
Multiplicação mais rápida que divisão?
Vi recentemente um tweet que me confundiu (publicado por um codificador XNA, no contexto de escrever um jogo XNA): Dica de microptimização do dia: quando possível, use multiplicação em vez de divisão em áreas de alta frequência. É alguns ciclos ...
otimização de compilador java
O compilador Java é inteligente o suficiente para otimizar o loop abaixo, extraindo o Double average = new Double( totalTime / callCount );fora do loop for? public double computeSD( Set values, int callCount, long totalTime ) { double diffs = ...
Renomear funções de forma programática
Atualmente, estou escrevendo um compilador ECMAScipt5 que executa várias otimizações / transformações em uma árvore de análise e compila novamente no ECMAScipt5. Uma funcionalidade é renomear umObrigatório em umEnvironmentRecord. Esta ...
Substituir um contador de loop de 32 bits por 64 bits introduz desvios de desempenho malucos
Eu estava procurando a maneira mais rápida depopcount grandes matrizes de dados. Eu encontrei ummuito estranho Efeito: Alterar a variável de loop deunsigned parauint64_t reduziu o desempenho em 50% no meu PC. O benchmark#include <iostream> ...
Por que "while (i ++ <n) {}" é significativamente mais lento que "while (++ i <n) {}"
Aparentemente, no meu laptop Windows 8 com HotSpot JDK 1.7.0_45 (com todas as opções de compilador / VM definidas como padrão), o loop abaixo final int n = Integer.MAX_VALUE; int i = 0; while (++i < n) { }é pelo menos 2 ordens de magnitude mais ...
Reorganizações de qualificador e compilador "voláteis"
Um compilador não pode eliminar ou reordenar leituras / gravações em umvolatilevariáveis qualificadas. Mas e os casos em que outras variáveis estão presentes, que podem ou não servolatile-qualificado? Cenário 1volatile int a; volatile int b; a ...