Click here to Skip to main content
15,900,511 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
AnswerRe: Drivers to access parallel port in c using windows xp or 7 ?? Pin
Erudite_Eric17-Mar-13 1:18
Erudite_Eric17-Mar-13 1:18 
AnswerRe: Drivers to access parallel port in c using windows xp or 7 ?? Pin
_Flaviu17-Mar-13 20:49
_Flaviu17-Mar-13 20:49 
QuestionC++ Code to call a Rest Based Web Service API Pin
raghunath sahoo15-Mar-13 7:56
raghunath sahoo15-Mar-13 7:56 
AnswerRe: C++ Code to call a Rest Based Web Service API Pin
Albert Holguin15-Mar-13 8:34
professionalAlbert Holguin15-Mar-13 8:34 
GeneralRe: C++ Code to call a Rest Based Web Service API Pin
raghunath sahoo15-Mar-13 8:55
raghunath sahoo15-Mar-13 8:55 
GeneralRe: C++ Code to call a Rest Based Web Service API Pin
raghunath sahoo15-Mar-13 8:57
raghunath sahoo15-Mar-13 8:57 
AnswerRe: C++ Code to call a Rest Based Web Service API Pin
Albert Holguin15-Mar-13 9:32
professionalAlbert Holguin15-Mar-13 9:32 
QuestionVC++ and Empty Base Class Optimization problem/bug Pin
Kosta Cherry15-Mar-13 4:45
Kosta Cherry15-Mar-13 4:45 
AnswerRe: VC++ and Empty Base Class Optimization problem/bug Pin
Matthew Faithfull15-Mar-13 6:01
Matthew Faithfull15-Mar-13 6:01 
GeneralRe: VC++ and Empty Base Class Optimization problem/bug Pin
Kosta Cherry15-Mar-13 6:23
Kosta Cherry15-Mar-13 6:23 
GeneralRe: VC++ and Empty Base Class Optimization problem/bug Pin
Matthew Faithfull15-Mar-13 6:36
Matthew Faithfull15-Mar-13 6:36 
GeneralRe: VC++ and Empty Base Class Optimization problem/bug Pin
David Crow15-Mar-13 7:34
David Crow15-Mar-13 7:34 
GeneralRe: VC++ and Empty Base Class Optimization problem/bug Pin
Kosta Cherry15-Mar-13 8:45
Kosta Cherry15-Mar-13 8:45 
AnswerRe: VC++ and Empty Base Class Optimization problem/bug Pin
jschell15-Mar-13 8:56
jschell15-Mar-13 8:56 
QuestionHow Can I set Noise In Image ? Pin
002comp14-Mar-13 19:25
002comp14-Mar-13 19:25 
AnswerRe: How Can I set Noise In Image ? Pin
Marco Bertschi14-Mar-13 22:21
protectorMarco Bertschi14-Mar-13 22:21 
AnswerRe: How Can I set Noise In Image ? Pin
nv316-Mar-13 2:16
nv316-Mar-13 2:16 
QuestiontimeGetTime() is unreliable on my computer too, not monotonic! Pin
Robert Inventor14-Mar-13 18:04
Robert Inventor14-Mar-13 18:04 
AnswerMessage Closed Pin
14-Mar-13 18:15
Robert Inventor14-Mar-13 18:15 
GeneralMessage Closed Pin
14-Mar-13 18:20
Robert Inventor14-Mar-13 18:20 
GeneralMessage Closed Pin
14-Mar-13 18:53
Robert Inventor14-Mar-13 18:53 
GeneralMessage Closed Pin
14-Mar-13 19:19
Robert Inventor14-Mar-13 19:19 
AnswerRe: timeGetTime() is unreliable on my computer too, not monotonic! Pin
Robert Inventor19-Mar-13 7:31
Robert Inventor19-Mar-13 7:31 
QuestionQueryPerformanceCounter inaccurate timing even with use of SetThreadAffinityMask Pin
Robert Inventor14-Mar-13 15:50
Robert Inventor14-Mar-13 15:50 
Hi there,

I'm using the high performance counter for timing musical notes - and have run into a problem. It doesn't time them accurately. What should be a regular rhythm is irregular.

When I debug to find out what is happening, then the numbers returned by QueryPerformanceCounter(..) sometimes change direction - in this code below, if I put a break point on the
C++
if(ddwt<ddwt_was)
 ddwt=ddwt;

then it gets triggered.

As you see, I have requested that the thread runs on core 1 of dual core machine. I'm testing it on a laptop with two processors and two cores in each processor.

Is SetThreadAffinityMask(..) perhaps not enough to ensure that the thread runs on a single core? Or is there some other reason for it?

Is there any way to fix it so I can get sub-millisecond timing working accurately on any computer?

Thanks for your help.

C++
LARGE_INTEGER HPT_PerformanceCount,HPT_PerformanceFrequency;
int found_HighPerformanceTimer_capabilities;
BOOL bHasHighPerformanceTimer;
double HighPerformanceTimer(void)
{
 // http://www.seethroughskin.com/blog/?p=133
 DWORD threadAffMask=SetThreadAffinityMask(GetCurrentThread(),1);
 DWORD threadAffMaskNew=0;
  if(found_HighPerformanceTimer_capabilities==0)
 {
  bHasHighPerformanceTimer=QueryPerformanceFrequency(&HPT_PerformanceFrequency);
  found_HighPerformanceTimer_capabilities=1;
 }
 if(HPT_PerformanceFrequency.QuadPart==0)
 {
  SetThreadAffinityMask(GetCurrentThread(),threadAffMask );
  return timeGetTime();
 }
 QueryPerformanceCounter(&HPT_PerformanceCount);
 threadAffMaskNew=SetThreadAffinityMask(GetCurrentThread(),threadAffMask );
 {
  __int64 count=(__int64)(HPT_PerformanceCount.QuadPart);
  __int64 freq=(__int64)(HPT_PerformanceFrequency.QuadPart);
  double dcount=(double)count;
  double dfreq=(double)freq;
  double ddwt=dcount*1000.0/dfreq;
#ifdef _DEBUG
  static double ddwt_was;
  if(ddwt_was!=0)
  if(ddwt<ddwt_was)
   ddwt=ddwt;
  ddwt_was=ddwt;
#endif
  return ddwt;
 }
}

AnswerRe: QueryPerformanceCounter inaccurate timing even with use of SetThreadAffinityMask Pin
Robert Inventor14-Mar-13 18:07
Robert Inventor14-Mar-13 18:07 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.