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

  • DJAndrewRyan

    DJAndrewRyan

    22 Ocak 2007
  • hidetake takayama

    hidetake tak

    3 Mart 2009
  • Jonathan Morrison

    Jonathan Mor

    24 Mart 2010