Resultados da pesquisa a pedido "micro-optimization"
Alinhamento de ramificação para loops que envolvem instruções microcodificadas nas CPUs da família Intel SnB
Th, está relacionado, mas não é o mesmo, como esta pergunta:Otimizações de desempenho da montagem x86-64 - Alinhamento e previsão de ramificação [https://stackoverflow.com/q/18113995/3403507]e está um pouco relacionado à minha pergunta ...
Como: Assembler embutido no C ++ (no Visual Studio 2010)
Estou escrevendo um projeto C ++ crítico em termos de desempenho, que processa números, em que 70% do tempo é usado pelo módulo principal de 200 linhas. Gostaria de otimizar o núcleo usando montagem embutida, mas sou completamente novo nisso. No ...
Pesquisa rápida de alguns petiscos em duas polegadas no mesmo deslocamento (C, microoptimização)
Minha tarefa é verificar (> trilhões de verificações), dois int contêm qualquer par predefinido de petiscos (primeiro par 0x2 0x7; segundo 0xd 0x8). Por exemplo: bit offset: 12345678 first int: 0x3d542783 first pair of 0x2 second: 0xd ...
Qual microarquitetura da Intel apresentou o caso especial ADC reg, 0 single-uop?
O ADC em Haswell e versões anteriores normalmente são 2 uops, com latência de 2 ciclos, porque os uops da Intel tradicionalmente só podiam ter 2 entradas ( https://agner.org/optimize/ [https://agner.org/optimize/]) Broadwell / Skylake e, ...
Devo usar o String.format () do Java se o desempenho for importante?
Temos que construir Strings o tempo todo para saída do log e assim por diante. Nas versões do JDK, aprendemos quando usarStringBuffer (muitos anexos, thread safe) eStringBuilder (muitos anexos, não são seguros para threads). Qual é o conselho ...
Qual é a melhor maneira de definir um registro como zero na montagem x86: xor, mov ou e?
Todas as instruções a seguir fazem o mesmo: set%eax para zero. Qual o caminho ideal (exigindo menos ciclos de máquina)? xorl %eax, %eax mov $0, %eax andl $0, %eax
Existe uma penalidade quando a base + deslocamento estiver em uma página diferente da base?
Os tempos de execução para esses três trechos: pageboundary: dq (pageboundary + 8) ... mov rdx, [rel pageboundary] .loop: mov rdx, [rdx - 8] sub ecx, 1 jnz .loopE isto: pageboundary: dq (pageboundary - 8) ... mov rdx, [rel pageboundary] .loop: ...
Teste se um registro é zero com CMP reg, 0 vs OR reg, reg?
Existe alguma diferença de velocidade de execução usando o seguinte código: cmp al, 0 je donee o seguinte: or al, al jz doneEu sei que as instruções JE e JZ são as mesmas e também que o uso de OR fornece uma melhoria de tamanho de um byte. No ...
Diferença entre “ou eax, eax” e “test eax, eax” [duplicado]
Esta pergunta já tem uma resposta aqui: Teste se um registro é zero com CMP reg, 0 vs OR reg, reg? [/questions/33721204/test-whether-a-register-is-zero-with-cmp-reg-0-vs-or-reg-reg] 2 respostasQual é a diferença entreor eax,eax etest eax,eax? ...
latency vs throughput em intel intrinsics
Acho que tenho um entendimento decente da diferença entre latência e taxa de transferência, em geral. No entanto, as implicações da latência na taxa de transferência de instruções não são claras para o Intel Intrinsics, principalmente ao usar ...