Articles of otimização

Arredondando para a próxima potência de 2

Eu quero escrever uma function que retorna a próxima potência mais próxima de 2 números. Por exemplo, se minha input é 789, a saída deve ser 1024. Existe alguma maneira de conseguir isso sem usar nenhum loop, mas apenas usando alguns operadores bitwise?

Otimização pelo compilador Java

Recentemente, eu estava lendo este artigo . De acordo com esse artigo, Java Compiler, ou seja, o javac não executa nenhuma otimização durante a geração do bytecode. Isso é realmente verdade? Em caso afirmativo, ele pode ser implementado como um gerador de código intermediário para remover a redundância e gerar o código ideal?

Como você testa o tempo de execução do código VBA?

Existe código em VBA eu posso envolver uma function com que me avise o tempo que levou para executar, para que eu possa comparar os diferentes tempos de execução de funções?

O que todo programador deve saber sobre memory?

Eu estou querendo saber quanto do que cada programador deve saber sobre memory de Ulrich Drepper de 2007 ainda é válido. Também não consegui encontrar uma versão mais recente que 1.0 ou uma errata.

O inline do linker pode funcionar?

No arquivo file1.c , há uma chamada para uma function que é implementada no arquivo file2.c . Quando eu vinculo file1.o e file2.o em um executável, se a function em file2 é muito pequena, o vinculador detectará automaticamente que a function é pequena e inline é sua chamada?

O que significam os termos “CPU bound” e “I / O bound”?

O que significam os termos “CPU bound” e “I / O bound”?

Por que a JVM ainda não suporta otimização de chamada?

Dois anos após as otimizações do call-the-jvm-prevent-tail-call , parece haver uma implementação de protótipo e o MLVM listou o recurso como “proto 80%” por algum tempo. Não existe nenhum interesse ativo do lado da Sun / Oracle em apoiar as chamadas finais ou é apenas que as chamadas finais estão “[…] destinadas a ficar em […]

Por que a otimização elimina essa function?

Recentemente, tivemos uma palestra na universidade sobre programação de especialidades em vários idiomas. O palestrante escreveu a seguinte function: inline u64 Swap_64(u64 x) { u64 tmp; (*(u32*)&tmp) = Swap_32(*(((u32*)&x)+1)); (*(((u32*)&tmp)+1)) = Swap_32(*(u32*) &x); return tmp; } Embora eu entenda totalmente que esse também é um estilo muito ruim em termos de legibilidade, seu ponto principal […]

Está mudando bits mais rápido do que multiplicando e dividindo em Java? .LÍQUIDO?

Deslocar os bits para a esquerda e para a direita aparentemente é mais rápido do que as operações de multiplicação e divisão na maioria, talvez até em todos, CPUs se você estiver usando uma potência de 2. No entanto, pode reduzir a clareza do código para alguns leitores e alguns algoritmos. A mudança de bit […]

Por que o .NET / C # não otimiza a recursion de chamadas?

Eu encontrei esta pergunta sobre quais idiomas otimizar a recursion da cauda. Por que o C # não otimiza a recursion da cauda, ​​sempre que possível? Para um caso concreto, por que esse método não é otimizado em um loop ( Visual Studio 2008 de 32 bits, se isso for importante) ?: private static void […]