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

  • Codecourse

    Codecourse

    3 ŞUBAT 2009
  • Feel The Electricity!

    Feel The Ele

    20 ŞUBAT 2010
  • Trulia

    Trulia

    29 Kasım 2006