micro-optimization

¿Cuál es la mejor opción para dividir un número entero por 2?

¿Cuál de las siguientes técnicas es la mejor opción para dividir un entero por 2 y por qué? Técnica 1: x = x >> 1; Técnica 2: x = x / 2; Aquí x es un entero.

¿Es más eficiente realizar una comprobación de rango fundiendo a uint en lugar de comprobar valores negativos?

Me topé con este fragmento de código en la lista de código fuente de. NET : // Following trick can reduce the range check ... sí, esto es micro optimización, no, no tengo la intención de usar esto en todas partes en mi código, solo tengo curiosidad.;)

Lo Que Todo Programador Debe Saber Sobre La Memoria?

Me pregunto cuánto de Ulrich Drepper Lo que Todo Programador Debería Saber Sobre Memoria de 2007 sigue siendo válido. Tampoco pude encontrar una versión más nueva que la 1.0 o una errata.

¿Cuál es la mejor manera de establecer un registro a cero en el ensamblaje x86: xor, mov o and?

Todas las siguientes instrucciones hacen lo mismo: pon %eax a cero. ¿De qué manera es óptima (requiere menos ciclos de máquina)? xorl %eax, %eax mov $0, %eax andl $0, %eax

Coste de los manejadores de excepciones en Python

En otra pregunta, la respuesta aceptada sugirió reemplazar una instrucción if (muy barata) en código Python con un bloque tr ... imiento) tener un manejador de excepciones, frente a no tener uno, frente a tener una sentencia compare-to-zero if-statement?

División en coma flotante vs multiplicación en coma flotante

¿Hay alguna ganancia de rendimiento (no microoptimización) al codificar float f1 = 200f / 2 En comparación con float f2 ... tos algorítmicos / arquitectónicos que hacen que > la división sea mucho más complicada en hardware que la multiplicación

¿Uso raro de `?: 'in' typeid ' code

En uno de los proyectos en los que estoy trabajando, estoy viendo este código struct Base { virtual ~Base() { } }; struc ... { bool isHoldingDerivedObj() const { return typeid(nonnull(*m_basePtr)) == typeid(Derived); } Base *m_basePtr; };

¿El uso de xor reg, reg da ventaja sobre mov reg, 0? [duplicar]

Esta pregunta ya tiene una respuesta aquí: ¿Cuál es la mejor manera de establecer un registro a cero en ... ia de la instrucción xor reg, reg en la instrucción anterior mov eax, 0? Lo ¿podría ser una mejor prueba para comprobar esto?

Pasar puntero nulo a la colocación nuevo

El operador de ubicación predeterminado new se declara en 18.6 [support.dinámico] ¶1 con una excepción de no lanzamiento-espe ... o usar un puntero nulo con una colocación nueva, por lo que los compiladores ya no son necesarios para hacer la comprobación.

¿Por qué date () funciona el doble de rápido si establecemos la zona horaria desde el código?

¿Ha notado que la función date() funciona 2 veces más rápido de lo habitual si establece la zona horaria real dentro de su ... y descubrí que no solo soy uno que se dio cuenta de esto, sino que todavía no puedo entender por qué sucede eso? ¿Alguien?

x> -1 vs x>= 0, hay una diferencia de rendimiento

He oído a un maestro caer esta vez, y me ha estado molestando desde entonces. Digamos que queremos comprobar si el entero x e ... caso era Java, pero según él esto también se aplicaba para C, c++ y otros lenguajes. ¿Hay algo de verdad en esta declaración?

¿Por qué n++ se ejecuta más rápido que n=n+1?

En lenguaje C, ¿por qué n++ se ejecuta más rápido que n=n+1? (int n=...; n++;) (int n=...; n=n+1;) Nuestro instructor hizo esa pregunta en la clase de hoy. (esto no es tarea)

array push () vs. array array [] = Which ¿Cuál es el más rápido? [duplicar]

Esta pregunta ya tiene una respuesta aquí: ¿Qué es mejor usar en PHP array array [] = value value o arra ... rRow = mysql_fetch_array($homePlayerResult)) { array_push($players, $homePlayerRow['player_id']); } Gracias de antemano

Modelo moderno de costo x86

Estoy escribiendo un compilador JIT con un motor x86 y aprendiendo ensamblador x86 y código máquina sobre la marcha. Usé ARM ... nada más que unos pocos años no se aplicará a las CPU x86 modernas porque han cambiado mucho últimamente. Estoy en lo cierto?

Java: if-return-if-return vs if-return-elseif-return

Hizo una pregunta no relacionada donde tenía un código como este: public boolean equals(Object obj) { if (this == obj ... r manera, ya que creo que se ve más limpio con todos los ifs en la misma posición. Pero no puedo evitarlo; ¡tengo curiosidad!

¿Cómo funcionan exactamente los registros parciales en Haswell / Skylake? Escribir AL parece tener una falsa dependencia de RAX, y AH es inconsistente

Este bucle se ejecuta en una iteración por 3 ciclos en Intel Conroe/Merom, embotellado en imul rendimiento como se esperaba. ... Ver también Problemas con ADC/SBB e INC/DEC en bucles estrechos en algunas CPU para cosas de bandera parcial en bucles adc.

¿Cómo puedo probar unitariamente optimizaciones de rendimiento en C#?

Estoy usando una versión optimizada del algoritmo de Levenshtein en algún código de búsqueda que estoy construyendo. Tengo pr ... 2: Piénsalo de esta manera... ¿cómo aplicaría rojo- > verde - > refactor cuando el rendimiento es un requisito crítico?

¿El operador condicional es lento?

Estaba mirando un código con una enorme sentencia switch y una sentencia if-else en cada caso e instantáneamente sentí la nec ... observaciones implica que el operador condicional funcionará más lento? ¿Hay otros efectos secundarios que entren en juego?