Avatar billede mxs Nybegynder
18. januar 2006 - 22:27 Der er 11 kommentarer

Timeval. Lidt svært ved at se hvordan man bruger den

Hey

jeg sidder i en slem knibe :) jeg har rodet man pagen/ googlet den, men kan stadig ikke forstå hvorfor jeg ikke kan få min simple kode til at virke. Derfor spørger jeg nu, hvordan bruger man denne timeval uden at få fejl.
Min kode er

#include <iostream>
#include <stdlib.h>
#include <sys/time.h>
#include <sys/types.h>
#include <time.h>

using namespace std;

int main()
{
struct timeval * tv = new timeval;
tv->tv_usec;




      system("PAUSE");
      return 0;
}

men den virker ikke rigtig :( Skal man bruge den sammen med en anden funktion?
Avatar billede arne_v Ekspert
18. januar 2006 - 22:43 #1
din kode gør jo ikke noget

her er et C eksempel med timeval:

#include <sys/time.h>
#include <stdio.h>

int main()
{
  struct timeval tv;
  struct timezone tz;
  gettimeofday(&tv,&tz);
  printf(" %ld %ld\n",tv.tv_sec,tv.tv_usec);
  return 0;
}
Avatar billede mxs Nybegynder
18. januar 2006 - 22:55 #2
arne_v nu mere fordi jeg fik en fejl :)
Avatar billede mxs Nybegynder
18. januar 2006 - 22:59 #3
Måske er det fordi jeg sidder på en windows maskine? Din kode kan heller ikke kompiles.
Avatar billede arne_v Ekspert
18. januar 2006 - 23:12 #4
ups ja

det er en unix/linux funktion

hvad skal du bruge den til ?
Avatar billede mxs Nybegynder
18. januar 2006 - 23:54 #5
skal have tiderne på hvor hurtig en given cpu er for at løbe igennem et interval :) Og lave sammenligninger osv. lille fritidsprojekt jeg har gang i. Fandt det derfor optimalt  at bruge timeval, da jeg havde fået af vide af en ven at timeval kunne nåes via windows og Linux.
Avatar billede arne_v Ekspert
18. januar 2006 - 23:58 #6
Avatar billede mxs Nybegynder
19. januar 2006 - 00:30 #7
kan man ikke også bruge clock() som jeg har gjort her?

#include <iostream>
#include <stdlib.h>
#include <sys/time.h>
#include <time.h>

using namespace std;

int main()
{
clock_t clistart;
clock_t clistop;

clistart = clock();

int stop = 0;
while(stop < 1000000000){stop++;}
clistop = clock();

cout << clistop - clistart << endl;


      system("PAUSE");
      return 0;
}

er det ikke den samme funktion?
Avatar billede arne_v Ekspert
19. januar 2006 - 00:32 #8
det kan du også

og den virker både på Linux og Windows
Avatar billede mxs Nybegynder
19. januar 2006 - 00:33 #9
Men er clock, ikke den approximerede?
Avatar billede arne_v Ekspert
19. januar 2006 - 00:34 #10
næh

clock måler CPU tid

de andre måler tid

men hvis det program du tester er eneste der kører så er det jo det samme
Avatar billede mxs Nybegynder
19. januar 2006 - 00:38 #11
Oh ok. Fik jeg bare at vide af en. Hmmm. Har dog heller ikke kunne finde noget om det på nettet som sagde at det var det.
Min ide var først at have en computer som ikke havde andet end det ene program, altså det vil sige den bootede faktisk op og startede det, men jeg vidste ikke om det kunne lade sig gøre, så jeg ser mig nødsaget til at have en Slackware stående, som er strippet for alt. Derved håber jeg at mit simple while loop kan få det CPU tid den behøver.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester