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

  • BradleyWuzHere

    BradleyWuzHe

    25 NİSAN 2011
  • chickenby

    chickenby

    2 HAZİRAN 2008
  • mliskIT

    mliskIT

    29 Mart 2012