2013-04-19 8 views
1

Я не могу сосчитать время обработки процессора в cygwin? Почему? Нужна ли мне специальная команда. Зачисление кликов в процессоре производится с помощью часов функция после включения time.h!Подсчет времени или кликов в Cygwin

Все еще, после того как я сделаю это в визуальной студии, я просто не могу работать на cygwin? Почему это!

Вот код.

#include <iostream> 
#include <time.h> 
using namespace std; 
int main() 
{ 

    clock_t t1,t2; 

    int x=0; 
    int num; 
    cout << "0 to get out of program, else, number of iterations" << endl; 
    cin>>num; 

    if(num==0) 
    system(0); 
    t1=clock(); 
    while (x!=num) 
     { 
     cout << "Number "<<x<<" e"<< endl; 
     if(x%2==0) 
      cout << "Even" << endl; 
     else 
      cout << "Odd" << endl; 
     x=x+1; 
     } 


    t2=clock(); 
    float diff ((float)t2-(float)t1); 
    cout<<diff<<endl; 
    float seconds = diff/CLOCKS_PER_SEC; 
    cout<<seconds<<endl; 
    system ("pause"); 
    return 0; 
} 

Извините за плохой английский.

ответ

1

Похоже, функция clock() определяется по-разному для Windows и POSIX (и, следовательно, Cygwin). MSDN говорит, что часы() возвращают «прошедшее время настенных часов с момента запуска процесса», тогда как версия POSIX возвращает «наилучшее приближение реализации к времени процессора, используемого процессом». В вашем примере процесс будет тратить почти все свое время, ожидая завершения вывода на терминал, что не учитывает время обработки.

 Смежные вопросы

  • Нет связанных вопросов^_^