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

  • Droid Life

    Droid Life

    17 Kasım 2009
  • Peter Sharp

    Peter Sharp

    11 ŞUBAT 2013
  • Shon Gonzales

    Shon Gonzale

    5 EKİM 2014