SORU
11 Mayıs 2010, Salı


Kolayca ölçmek için geçen süre

time() benim program farklı noktaları ölçmek için kullanmaya çalışıyorum.

Benim anlamadığım bu değerleri önce ve sonra aynıdır neden? Bu benim program profili için en iyi yol değildir anlıyorum, ben sadece bir şey almak nasıl görmek istiyorum.

printf("**MyProgram::before time= %ld\n", time(NULL));

doSomthing();
doSomthingLong();

printf("**MyProgram::after time= %ld\n", time(NULL));

Denedim:

struct timeval diff, startTV, endTV;

gettimeofday(&startTV, NULL); 

doSomething();
doSomethingLong();

gettimeofday(&endTV, NULL); 

timersub(&endTV, &startTV, &diff);

printf("**time taken = %ld %ld\n", diff.tv_sec, diff.tv_usec);

Nasıl **time taken = 0 26339 sonucu okuyabilirim? Bu 26,339 = 26.3 MSN nanosaniye anlamına mı geliyor?

Ne **time taken = 4 45025 yaklaşık 4 saniye ve 25 milisaniye anlamına mı geliyor?

CEVAP
11 Mayıs 2010, Salı


#include <ctime>

void f() {
  using namespace std;
  clock_t begin = clock();

  code_to_time();

  clock_t end = clock();
  double elapsed_secs = double(end - begin) / CLOCKS_PER_SEC;
}

time() işlevi, bir saniye içinde doğru, ama orada CLOCKS_PER_SEC "" Bir saniye içinde. saatler Bu aşırı basitleştirilmiş olsa da kolay, taşınabilir bir ölçüm.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ItZWaffleS420

    ItZWaffleS42

    9 EYLÜL 2011
  • NPR

    NPR

    22 NİSAN 2006
  • Numberphile

    Numberphile

    15 EYLÜL 2011