Articles of optimización

¿Banderas invisibles de optimización GCC?

Estoy construyendo un gran proyecto usando GCC 4.4.2 . Ya que quiero comstackrlo para el lanzamiento, uso el -O1 optimización -O1 GCC, pero desafortunadamente se confunde de alguna manera con mi código, y los archivos binarios finales no funcionan como se esperaba, al -O0 con el indicador -O0 (o sin optimización) todo funciona bien . […]

Usando operaciones bitwise

¿Con qué frecuencia utiliza “hacks” de operación a nivel de bits para realizar algún tipo de optimización? ¿En qué tipo de situaciones es realmente útil? Ejemplo: en lugar de usar si: if (data[c] >= 128) //in a loop sum += data[c]; usted escribe: int t = (data[c] – 128) >> 31; sum += ~t & […]

¿Se asigna memoria a una variable constante estática cuya dirección nunca se usa?

Si nunca uso la dirección de una variable constante estática, ¿se le asigna memoria cuando se utiliza un comstackdor razonablemente moderno?

C / C ++ la mejor manera de enviar un número de bytes a la salida estándar

Crear un perfil de mi progtwig y la función de impresión está demorando mucho en ejecutarse. ¿Cómo puedo enviar la salida de bytes “sin procesar” directamente a la salida estándar en lugar de usar fwrite y hacerlo más rápido (es necesario enviar todos los 9 bytes en la impresión () al mismo tiempo a la […]

¿Qué técnicas de encoding utilizas para optimizar los progtwigs de C?

Hace algunos años participé en un panel que entrevistaba a candidatos para un puesto de progtwigdor de C integrado relativamente superior. Una de las preguntas estándar que hice fue sobre técnicas de optimización. Me sorprendió bastante que algunos de los candidatos no tuvieran respuestas. Entonces, con el fin de armar una lista para la posteridad, […]

¿Qué tan rápido puedes hacer una búsqueda lineal?

Estoy buscando optimizar esta búsqueda lineal: static int linear (const int *arr, int n, int key) { int i = 0; while (i = key) break; ++i; } return i; } La matriz está ordenada y se supone que la función devuelve el índice del primer elemento que es mayor o igual a la clave. […]

La forma más rápida de transponer matriz de 4×4 bytes.

Tengo un bloque de 4×4 de bytes que me gustaría transponer usando hardware de propósito general. En otras palabras, para los bytes AP, estoy buscando la forma más eficiente (en términos de cantidad de instrucciones) de ir ABCD EFGH IJKL MNOP a AEIM BFJN CGKO DHLP Podemos suponer que tengo punteros válidos que apuntan a […]

Calcular tan tener sin / cos LUT

#define PARTPERDEGREE 1 double mysinlut[PARTPERDEGREE * 90 + 1]; double mycoslut[PARTPERDEGREE * 90 + 1]; void MySinCosCreate() { int i; double angle, angleinc; // Each degree also divided into 10 parts angleinc = (M_PI / 180) / PARTPERDEGREE; for (i = 0, angle = 0.0; i <= (PARTPERDEGREE * 90 + 1); ++i, angle += […]

¿Cómo puedo mejorar esta función bajo CUDA?

¿Puedo mejorar la siguiente función bajo CUDA ? Lo que hace la función es, Dados un min y un max , ELM1 y ELM , verifique si se encuentran tres números del conjunto ans[6] en alguna fila, de min a max , en el conjunto D1 , D2 , D3 , D4 , D5 , […]

¿Cuáles son las otras opciones de IO más rápido en C?

Implementé la clasificación de mezcla y la utilicé como una solución para este problema de encoding de código . Aquí están las presentaciones . El código se coloca a continuación. El problema que creo que está causando una ejecución lenta es que mi IO es lenta en la función main . Sé la cantidad de […]