Ljóseind Skrevet 31. mars 2015 Del Skrevet 31. mars 2015 Ja. Det merket jeg i sted. Synes det er ganske merkelig dog.. Hvis den først greier å differensiere mellom 415 002 540 ns og 415 020 470 ns, synes jeg det er rart at den ikke kan måle et tidsrom på f.eks. differansen mellom disse, 17 930 ns. Lenke til kommentar
Emancipate Skrevet 31. mars 2015 Del Skrevet 31. mars 2015 Det er en rekke uforutsigbare ting som f.eks. task switching og cpu-frekvens som kommer inn i bildet. Om cpu-en er i hvilemodus tar det litt tid på maks last før den våkner.I tillegg er ikke granulariteten nødvendigvis så god som APIene kan gi inntrykk av. F.eks. har vanlig GetTickCount() på windows offisielt millisekund-oppløsning, men i realiteten måler den ikke kortere tidsrom enn 16 ms dersom man ikke har stilt opp oppløsningen med spesialfunksjoner først. Tilsvarende blir det med nanosekund-funksjoner - de måler ikke ett og ett nanosekund. 18000 nanosekunder er så kort at jeg tviler på at PCen har fysisk mulighet til å måle noe mye kortere - i hvert fall kan selve målingen ta lengre tid å utføre enn programsnutten din. 1 Lenke til kommentar
efikkan Skrevet 1. april 2015 Del Skrevet 1. april 2015 Bare som en sidenotis; presis måling av tid er vanskelig uten et operativsystem med høypresisjons timing. Derfor har jeg brukt low-latency Linux til det formålet, som gir presisjon ned på mikrosekunder i stedet for mange millisekunder. Lenke til kommentar
Lycantrophe Skrevet 1. april 2015 Del Skrevet 1. april 2015 Hva skal du med nanosekundspresisjon, forresten? Lenke til kommentar
Ljóseind Skrevet 1. april 2015 Del Skrevet 1. april 2015 Jeg skrev samme kode i to språk og ville se hvilken som gikk fortest. Koden gikk mye raskere enn jeg hadde trodd, og da den vanlige tidtakingsmåten min ikke funket (fikk 0 s) , prøvde jeg å lete etter noe som var mer presist, og da kom jeg over chronos med nanosekunder. Det endte med at jeg målte tidsbruken når jeg kjørte koden mange ganger. Lenke til kommentar
Lycantrophe Skrevet 1. april 2015 Del Skrevet 1. april 2015 Da skalerer du opp problemet. Lenke til kommentar
Garanti Skrevet 8. november 2015 Del Skrevet 8. november 2015 (endret) Heisann, har jobbet i hele dag med å finne en løsning på følgende problem: Ønsker å kjøre noen kodelinjer første gang jeg lager et objekt fra klassen Class Pseudokode: Class { Class(); static bool instantiated; } Class::Class() { if( !instantiated) { // do something }else{ // do something else instantiated = true; { } Som jo ikke fungerer, da variabelen 'instantiated' ikke er tilordnet en verdi.. Endret 8. november 2015 av Garanti Lenke til kommentar
Glutar Skrevet 8. november 2015 Del Skrevet 8. november 2015 (endret) Hvis du skal ha en static variabel i en klasse må den initialiseres utenfor klassen slik: // *.h class A { public: A(); static bool initialized; }; // *.cpp bool A::init = false; A::A() { if (initialized) { std::cout << "Initialized.\n"; } // ... } Endret 8. november 2015 av Glutar 1 Lenke til kommentar
Lycantrophe Skrevet 9. november 2015 Del Skrevet 9. november 2015 Heisann, har jobbet i hele dag med å finne en løsning på følgende problem: Ønsker å kjøre noen kodelinjer første gang jeg lager et objekt fra klassen Class Det ønsker du antagelig ikke. Hvorfor? Et static member i klassen -eller- en static bool i constructoren (hvis bare én) er uansett løsningen. 1 Lenke til kommentar
Garanti Skrevet 9. november 2015 Del Skrevet 9. november 2015 Takk for svar fra begge! Dere har helt rett, tanken var å initialisere noen variabler, men ser at dette må gjøres utenfor klassen Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå