|
|
This blog post[^] may give you some insights.
I doubt if there's a ready made API that can give results at nano second precision. RDTSC[^] can be a good thing to bet upon, but don't take my word for it.
|
|
|
|
|
Rajesh R Subramanian wrote: RDTSC[^] can be a good thing to bet upon, but don't take my word for it.
On old-fashioned-single-core-machines.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
But does that apply only to RDTSC?
|
|
|
|
|
Yes, as far as this article [^] is correct, the QueryPerformanceFrequency,QueryPerformanceCounter pair is more robust (as Windows API is expected to be).
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
I accept, I had not taken into account the fact that more than one processor core can exist, but:
What QueryPerformanceCounter actually does is up to the HAL (with some help from ACPI). The performance folks tell me that, in the worst case, you might get it from the rollover interrupt on the programmable interrupt timer. This in turn may require a PCI transaction, which is not exactly the fastest thing in the world. It's better than GetTickCount, but it's not going to win any speed contests. In the best case, the HAL may conclude that the RDTSC counter runs at a constant frequency, so it uses that instead.[^]
|
|
|
|
|
Rajesh R Subramanian wrote: In the best case, the HAL may conclude that the RDTSC counter runs at a constant frequency, so it uses that instead.
That's API robustness. You should make the (in)famous QueryPerformanceFrequency/QueryPerformanceCounter pair make the best (while still reliable) choiche for you.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
CPallini wrote: You should make (in)famous QueryPerformanceFrequency/QueryPerformanceCounter pair make the best (while still reliable) choiche
Agreed.
Hijack attempt starts:
How are you doing with the Connoisseur's tea? Liking it?
|
|
|
|
|
Rajesh R Subramanian wrote: Hijack attempt starts:
Hijack attempts goes stright on:
Yes I like it. But I had few occasions to taste it again. It's quite hot these days here in Italy and I prefer lower temperatures to have cups of tea.
(of course I can't miss hot coffee, but, you know, I'm an addict...)
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
CPallini wrote: I prefer lower temperatures to have cups of tea.
Urgent?
|
|
|
|
|
Yes, plz plz. Or gimme more drugz!
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
And finally hijacked!!
Regards,
Sandip.
|
|
|
|
|
|
SandipG wrote: And finally hijacked!!
Whom??
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/xml>
|
|
|
|
|
cup of coffee also help
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/xml>
|
|
|
|
|
CPallini wrote: QueryPerformanceFrequency/QueryPerformanceCounter pair make the best (while still reliable) choiche for you
damm i missed it!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/xml>
|
|
|
|
|
I will suggest that you run this function a large number of times. Take the total time and the compute the average time, this way you will have more realistic measure of time function takes.
-Saurabh
|
|
|
|
|
[EDIT] Yeah, what he said. (seems I had the reply window open longer than I thought )
I don't quite understand what the big deal is - am I really missing something really obvious? This just seems like a relatively simple exercise in maths to me, with the added fun of error estimation and minimization.
There's 1,000ms in a second right. So, if I can complete 2,000 events in 1,000 ms then each event is taking 1,000 / 2,000 = 0.5ms.
So then if I complete something 5,000,000 times in 1,000ms, each event is taking 0.0002 ms, or 1/5,000,000 = 0.0000002s - we've already measured/calculated the time of completion to 1/5000th the resolution of the millisecond timer.
Something to consider though is that as the time of each event becomes smaller and smaller, the overhead of the loop becomes a higher and higher margin of the error. The other major source of error is task-switching. This makes timing such an event in a non-realtime os more than a bit of a challenge.
Things that can help you minimize these errors are to
(i) kill all unnecessary processes first
(ii) complete the maximum number of events you can - a longer sample time will help give more consistant results.
(iii) start the timing loop on a keypress. This will allow you to start your program, set it's priority to "realtime" and then get timing.
Lets say I have a loop that calls my function 14 times per iteration(inlining the code would be much better than calling a function of course). Next, I time 500 million iterations of my loop and find that it completes in 2785 ms. So, I can tell that I'm getting 179,533.2136 loop iterations per millisecond. I then multiply this by 14 and find that I'm getting 2,513,464 function calls per millisecond.
This would correspond to 2.5 function calls per nanosecond. (not a result you could hope to get close to, given current clock-rates of cpus and the error-inducing factors I mentioned above, but that's the basic idea)
|
|
|
|
|
Hi,
How can I select tree item at right click?
|
|
|
|
|
|
when you click the tree item whether right or left it will automatically be selected.I am not sure, are you asking about to handle right click of tree control?
|
|
|
|
|
At the left click it will select but not with the right click
|
|
|
|
|
U r right MPTP, actually i am using the tree ctrl and selecting the item using SelecteItem function, hence it's getting selected for left as well as right,By default it does not gets selected on right click.
Thanks.
|
|
|
|
|
How to disable a button , which is already using ON_UPDATE_COMMAND_UI ?I mean other than handling inside the function,As for example one condition check should disable a set of seven buttons ,Instead of doing it individually, can we use any other way .
modified on Thursday, July 17, 2008 7:04 AM
|
|
|
|
|
kDevloper wrote: How to disable a button , which is already using ON_UPDATE_COMMAND_UI ?
Use CCmdUI::Enable() .
"Love people and use things, not love things and use people." - Unknown
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|