Ver Mensaje Individual
  #6 (permalink)  
Antiguo 30/12/2012, 11:58
Avatar de dontexplain
dontexplain
 
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: No se muestran los datos

Una sugerencia, el código C++ que incluya dentro de la condición del for una comprobación de un recurso estático repite el mismo procedimiento una y otra vez haciendo que el procesador salte continuadamente a distintas fases del procesamiento y consumiendo más tiempo. Sería ideal quizás que incluyeras

double size = sizeof(res); // o int, según el tamaño
for(k = 0 ; k < res; k++){}

Lo cual sería una sola operación de cálculo simple numérico que setearía los flags y consumiría menos ciclos de proceso. (lo escribo tal cual, no lo comprobé)

mov eax, dword ptr [size]
cmp eax, dword ptr [k] // suponiendo que k es un puntero
jle dir

Lo que tienes puesto probablemente salte a otro punto del código para repetir la operación de comprobación nuevamente teniendo que introducir los mismos datos en el stack, etc.

mov eax, dword ptr [k]
add eax, 1
push loquesea
...
call/jmp sizeof // llamada adicional innecesaria
mov eax, dword ptr [size]
...

Como cuestión adicional se me ocurriría que el tipo de dato devuelto por sizeof es un tipo numérico sin signo (size_t), no sé hasta qué punto el typecasting puede consumir recursos a la hora de convertir ese tipo a un entero normal

size_t size = sizeof(res);
int size_int = (int) size;

Quizás vendría bien que mirases eso para comprobar la efectividad.

Un saludo.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor

Última edición por dontexplain; 30/12/2012 a las 12:42