Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/08/2014, 21:05
dmorill
 
Fecha de Ingreso: junio-2014
Mensajes: 144
Antigüedad: 9 años, 10 meses
Puntos: 1
Uso 100% CPU para un programa hecho en c++

Hola amigos, les traigo un problema muy interesante.

Me dí cuenta que el algoritmo que estoy desarrollando tardaba mucho, así que tuve la idea de probar que tan eficiente era c++, para ello construí un programa aparte, muy simple que lo muestro a continuación:

Código C++:
Ver original
  1. #include <ctime>    //reloj
  2. #include <iostream>
  3. #include <math.h>
  4.  
  5. using namespace std;
  6.  
  7. void mostrarTiempo(clock_t tiempo);
  8.  
  9. int main(){
  10.     clock_t tiempo = clock();    //iniciar el reloj
  11.     long long i = 0;
  12.     double sum = 0;
  13.     for (i = 1; i < 10000000000; i++){
  14.         sum = sum + log(double(i));
  15.     }
  16.  
  17.     mostrarTiempo(tiempo);
  18.  
  19.     cout << "Pulse para salir...";
  20.     cin.sync();
  21.     cin.get();
  22.     return 0;
  23. }
  24.  
  25.  
  26. void mostrarTiempo(clock_t tiempo){
  27.     tiempo = clock() - tiempo;
  28.     cout << endl << "Tiempo de ejecución es " << double(tiempo) / CLOCKS_PER_SEC << " seg." << endl;
  29. }

Como pueden ver sólo es un for muy largo, para mi sorpresa que el tiempo era de 340 segundos (que en otros equipos es de 140 por ejemplo) y mirando mi administrador de tareas, en la pestaña rendimiento, sólo se le da un 17% de uso de cpu en promedio a mi proceso (el programa compilado en c++), el uso total mientras lo hacia era de 45% en promedio, con windows y otras cosas.

Mi pregunta es como hacer para que windows le dedique todo lo que pueda al programa .exe que generé. Es decir que corriendo mi programa este casi al 100% del uso del cpu.

Muchas gracias.