Resultados de la búsqueda a petición "compiler-optimization"

2 la respuesta

¿Son redundantes los tipos anónimos de C # en C # 7?

Dado que C # 7 introduce tuplas de valor, ¿existe un escenario significativo en el que sean más adecuadas que las tuplas? Por ejemplo, la siguiente línea collection.Select((x, i) => (x, i)).Where(y => arr[y.i].f(y.x)).ToArray();hace la ...

4 la respuesta

¿Los compiladores de C ++ 11 convierten las variables locales en valores cuando pueden durante la optimización del código?

A veces es aconsejable dividir expresiones complicadas o largas en varios pasos, por ejemplo (la segunda versión no es más clara, pero es solo un ejemplo): return object1(object2(object3(x)));Se puede escribir como: object3 a(x); object2 b(a); ...

2 la respuesta

El reordenamiento de GCC de las instrucciones de lectura / escritura

Las primitivas de sincronización de Linux (spinlock, mutex, RCU) usan instrucciones de barrera de memoria para forzar que las instrucciones de acceso a la memoria no se vuelvan a ordenar. Y esta reordenación puede ser realizada por la propia CPU ...

2 la respuesta

Rendimiento del cambio de tamaño std :: vector <std :: unique_ptr <T>>

La concepción general parece ser questd::unique_ptr tienesin tiempo de sobrecarga [https://stackoverflow.com/questions/22295665/how-much-is-the-overhead-of-smart-pointers-compared-to-normal-pointers-in-c] en comparación con los punteros crudos ...

5 la respuesta

optimización del compilador de Java

¿Es el compilador de Java lo suficientemente inteligente como para optimizar el ciclo a continuación, extrayendo el Double average = new Double( totalTime / callCount );fuera del ciclo for? public double computeSD( Set values, int callCount, ...

10 la respuesta

Reemplazar un contador de bucle de 32 bits con 64 bits introduce desviaciones de rendimiento locas

Estaba buscando la forma más rápida depopcount grandes conjuntos de datos. Me encontré con unmuy raro efecto: Cambiar la variable de bucle deunsigned auint64_t redujo el rendimiento en un 50% en mi PC. El punto de referencia#include <iostream> ...

4 la respuesta

Calificador "volátil" y reordenamientos del compilador

Un compilador no puede eliminar o reordenar lecturas / escrituras en unvolatilevariables calificadas. Pero, ¿qué pasa con los casos en los que hay otras variables presentes, que pueden o no servolatile-¿calificado? escenario 1volatile int a; ...

1 la respuesta

¿HotSpot puede optimizar las llamadas redundantes a métodos puros sin incluirlos?

Métodos puros [https://en.wikipedia.org/wiki/Pure_function]son aquellos sin efectos secundarios: su único efecto es devolver un valor que es función de sus argumentos. Dos llamadas al mismo método puro con los mismos argumentos devolverán el ...

3 la respuesta

El uso de este puntero provoca una desoptimización extraña en el bucle dinámico

Recientemente me encontré con una desoptimización extraña (o más bien perdí la oportunidad de optimización). Considere esta función para desempaquetar de manera eficiente conjuntos de enteros de 3 bits a enteros de 8 bits. Descomprime 16 ints en ...

4 la respuesta

¿El comportamiento indefinido realmente ayuda a los compiladores modernos a optimizar el código generado?

¿No son los compiladores modernos lo suficientemente inteligentes como para poder generar un código que sea rápido y seguro al mismo tiempo? Mira el código a continuación: std::vector<int> a(100); for (int i = 0; i < 50; i++) { a.at(i) = i; } ...