Mejorar rendimiento de función memcpy

22/04/2005 - 12:24 por Josep Maria | Informe spam
Hola, estamos realizando un proceso que ejecuta copias de
bloques de memoria de un origen a un destino, con la
función memcpy.

Esta función dentro de nuestro proceso se llega a ejecutar
miles y miles de veces.

Si bien el tiempo de respuesta que obtenemos del proceso
es aceptable, queriamos saber si existe alguna función de
biblioteca C que mejore el rendimiento de esta función
memcpy, es decir, que haga a igual cantidad de bytes a
copiar de una zona de memoria a otra, lo haga más rapido.

Realmente, si lo encontramos mejoraría mucho el
rendimimento pues insisto, la función memcpy se está miles
y miles de veces en este proceso y una leve mejora en el
desempeño de esa función haría que globalmente tardase
mucho menos el proceso.

Gracias.

Preguntas similare

Leer las respuestas

#21 Zephryn Xirdal
25/04/2005 - 23:15 | Informe spam
¡Sasto!

Usa el ASM.

Y ahora está clara toda la parrafada que le da el compilador en
ensamblador que ha puesto antes sobre el memcpy Josep Maria. Si los
buffers se superponen hace copias hacia arriba y abajo. Por eso tanto
código en ensamblador... (Ya me barruntaba yo algo, que era demasiado
código para un while, por muy ineficaz que fuera el compilador, aunque en
el gnu 2.95 para motorola, el compilador era capaz de mover varias veces
un valor entre diferentes registros para al final dejarlo en el mismo
sitio y hacer las operaciones, así que tampoco me hubiera extrañado que el
vc hubiera hecho algo parecido).

Ahora lo curioso está en el motivo del código en c y el de ensamblador
dentro del código fuente de la crt...



On Mon, 25 Apr 2005 18:04:33 +0200, Rodrigo Corral [MVP]
wrote:

En mi caso el asm!!! Lo puedes ver depurando con F11...


Respuesta Responder a este mensaje
#22 Isidro Muñoz
26/04/2005 - 09:30 | Informe spam
Me imagino que el ensamblador lo usará en Intel, y lo demás en otras
plataformas.

Saludos.
Isidro.

"Zephryn Xirdal" escribió en el
mensaje news:
¡Sasto!

Usa el ASM.

Y ahora está clara toda la parrafada que le da el compilador en
ensamblador que ha puesto antes sobre el memcpy Josep Maria. Si los
buffers se superponen hace copias hacia arriba y abajo. Por eso tanto
código en ensamblador... (Ya me barruntaba yo algo, que era demasiado
código para un while, por muy ineficaz que fuera el compilador, aunque en
el gnu 2.95 para motorola, el compilador era capaz de mover varias veces
un valor entre diferentes registros para al final dejarlo en el mismo
sitio y hacer las operaciones, así que tampoco me hubiera extrañado que el
vc hubiera hecho algo parecido).

Ahora lo curioso está en el motivo del código en c y el de ensamblador
dentro del código fuente de la crt...



On Mon, 25 Apr 2005 18:04:33 +0200, Rodrigo Corral [MVP]
wrote:

En mi caso el asm!!! Lo puedes ver depurando con F11...


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida