CLR: .Net / Mono / Boo / Otros CLR > C#
Performance
JuanK:
Saludos,
Tengo una duda acerca de cual de estas dos instrucciones es mas rapida ya que las necesito en un proceso que se ejecuta miles de veces .
--- Código: Text --- int variableA........... int variable= (byte)((variableA & 0x1C) >> 2);//---------------------------------------------int variable= (byte)((variableA << 3 ) >> 5);
El punto es que en variable deben quedar solo los bits 3,4,5 de la variable variableA.
Ya he probado ambos y ambos me funcionan produciendo los resultados esperados pero me interesa saber cual tiene un mejor desempeño en el procesador y desde luego cual es la razon de la respuesta.
Gracias.
Enko:
Según tengo entendido, AND consume menso ciclos que SHR o SHL.
Fijate en esta página (el link lo paso Eternal Idol para no desacreditarle el merito):
http://home.comcast.net/~fbui/intel.html
Siguiendo lo que dice las tablas de la página, AND segun que operandos esten en juego, cosume promedio 2 ciclos, mientras que los SHL algo de 5.
ROR algo de 4.
lo que no se, es si "<<" es SHL o ROL pero aun asi, tardan mas que AND.
JuanK:
Bueno ese es un buen dato, vere si hay documentacion para procesadores Pentium y posteriores que son mi objetivo mas general .
SHL :rolleyes: ? debe ser << porque no conozco nada en C/C++/C# que haga ROL alguien sabe de alguno?
Eternal Idol:
Es SHL pero todo esto es en C/C++ no se que hara en C#:
mov eax,dword ptr [ebp-8]
and eax,1Ch
sar eax,2
movzx ecx,al
mov dword ptr [ebp-4],ecx
mov edx,dword ptr [ebp-8]
shl edx,3
sar edx,5
movzx eax,dl
mov dword ptr [ebp-0Ch],eax
De cualquier manera lo mejor es que lo pruebes, con algun bucle que tarde lo suficiente para ver la diferencia real.
JuanK:
OK, bueno he hecho pruebas que tardan hasta 4 segundos con bitmaps uno de
955 * 581 * 3 = 1.58 mb
y otro
868 * 979 * 3 = 2.43 mb
es decir la prueba la hice con los dos al tiempo ( 4.01 mb).
pero mi objetivo es que no tarden ni un segundo, maximo uno.
bueno encontre esto que no me aclara mucho el panorama porque aun hay diferencia.
Seguire tu consejo y vere si puedo en un rato sacar algo de tiempo para un bitmap grande.
Navegación
[#] Página Siguiente
Ir a la versión completa