Windows Waiting calls, remove time spent in there
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-24-2009
07:04 AM
11-24-2009
07:04 AM
Windows Waiting calls, remove time spent in there
So' I'm the one to deflorate the AQtime6 thread...
Wondering If I'll ever get an answer!
I'm playing around with aqtime at home to understand the tool better.
(Been a user of aqtime4 a long time)
Here's the thing... I want to performance profile my thread pool class. These pooled threads spend most of their time blocked in WaitForMultipleObjectsEx
This is not very interesting: I just want to know all the other overhead. How can I 'ignore' these routines, or otherwise NOT take in account the time spent in there for the total time of the routine that actually calls the WaitForMultipleObjectsEx
I've tried Adding trigger on Kernel32.WaitForMultipleObjectsEx to an OFF trigger but no luck. My profiling area is set to my own source code only, and the Execute method of the thread is added to an ON trigger. ). Initial profiling off.
Regards / Hans
SG and partners BV
Wondering If I'll ever get an answer!
I'm playing around with aqtime at home to understand the tool better.
(Been a user of aqtime4 a long time)
Here's the thing... I want to performance profile my thread pool class. These pooled threads spend most of their time blocked in WaitForMultipleObjectsEx
This is not very interesting: I just want to know all the other overhead. How can I 'ignore' these routines, or otherwise NOT take in account the time spent in there for the total time of the routine that actually calls the WaitForMultipleObjectsEx
I've tried Adding trigger on Kernel32.WaitForMultipleObjectsEx to an OFF trigger but no luck. My profiling area is set to my own source code only, and the Execute method of the thread is added to an ON trigger. ). Initial profiling off.
Regards / Hans
SG and partners BV
12 REPLIES 12
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-24-2009
08:30 PM
11-24-2009
08:30 PM
Hi,
http://www.automatedqa.com/products/aqtime/faqs/#sec6_q20 may appear to be useful...
--
Regards,
Alex
[TeamAQA]
____
[TeamAQA] members are not employed by AutomatedQA Corp. but are just
volunteers who have some experience with the tools by AutomatedQA Corp.
and a desire to help others. Postings made by [TeamAQA] members may
differ from the official policies of AutomatedQA Corp. and should be
treated as the own private opinion of their authors and under no
circumstances as an official answer from AutomatedQA Corp.
[TeamAQA] signature is used with permission by AutomatedQA Corp.
More information about [TeamAQA] and its members is available at
http://www2.automatedqa.com/Articles/TeamAQA/
http://www.automatedqa.com/community/TeamAQA/tabid/50/Default.aspx
================================
http://www.automatedqa.com/products/aqtime/faqs/#sec6_q20 may appear to be useful...
--
Regards,
Alex
[TeamAQA]
____
[TeamAQA] members are not employed by AutomatedQA Corp. but are just
volunteers who have some experience with the tools by AutomatedQA Corp.
and a desire to help others. Postings made by [TeamAQA] members may
differ from the official policies of AutomatedQA Corp. and should be
treated as the own private opinion of their authors and under no
circumstances as an official answer from AutomatedQA Corp.
[TeamAQA] signature is used with permission by AutomatedQA Corp.
More information about [TeamAQA] and its members is available at
http://www2.automatedqa.com/Articles/TeamAQA/
http://www.automatedqa.com/community/TeamAQA/tabid/50/Default.aspx
================================
Regards,
/Alex [Community Hero]
____
[Community Heroes] are not employed by SmartBear Software but
are just volunteers who have some experience with the tools by SmartBear Software
and a desire to help others. Posts made by [Community Heroes]
may differ from the official policies of SmartBear Software and should be treated
as the own private opinion of their authors and under no circumstances as an
official answer from SmartBear Software.
The [Community Hero] signature is used with permission by SmartBear Software.
https://community.smartbear.com/t5/custom/page/page-id/hall-of-fame
================================
/Alex [Community Hero]
____
[Community Heroes] are not employed by SmartBear Software but
are just volunteers who have some experience with the tools by SmartBear Software
and a desire to help others. Posts made by [Community Heroes]
may differ from the official policies of SmartBear Software and should be treated
as the own private opinion of their authors and under no circumstances as an
official answer from SmartBear Software.
The [Community Hero] signature is used with permission by SmartBear Software.
https://community.smartbear.com/t5/custom/page/page-id/hall-of-fame
================================
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-24-2009
09:48 PM
11-24-2009
09:48 PM
First of all: thanks for the quick response.
So I wanted to try the other profiler settings too, I followed instructions to put my (Home machine) Win7x64 into debug mode, so the other options would become available. No luck, the combobox only shows elapsed time as option.
Now I'm at the office, I can see all the other options too, even though my DevMachine's WinXPx64 isn't in debug mode. Is there an explanation why my profiler combobox only shows 'Elapsed time' in my Win7x64 environment?
Kind regards - Hans
So I wanted to try the other profiler settings too, I followed instructions to put my (Home machine) Win7x64 into debug mode, so the other options would become available. No luck, the combobox only shows elapsed time as option.
Now I'm at the office, I can see all the other options too, even though my DevMachine's WinXPx64 isn't in debug mode. Is there an explanation why my profiler combobox only shows 'Elapsed time' in my Win7x64 environment?
Kind regards - Hans
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-25-2009
12:13 AM
11-25-2009
12:13 AM
Hi Hans,
First of all, the current version of AQtime (6.21) does not support Windows 7. We are preparing a new update with support for this operating system. If you are a registered user of AQtime 6, we can send you a Beta version of the upcoming update so you can check how it works in the Windows 7 operating system. If you want to get the Beta version, please contact us via the Contact Support form (http://www.automatedqa.com/support/message/). Please don't forget to specify your Customer ID.
Another explanation is that the CPU installed on your computer is not supported by AQtime. Please find more information on this in the 'Supported Processor Models' help topic.
--
Dmitry Nikolaev
Did my reply answer your question? Give Kudos or Accept it as a Solution to help others. ⬇️⬇️⬇️
Dmitry Nikolaev
Did my reply answer your question? Give Kudos or Accept it as a Solution to help others. ⬇️⬇️⬇️
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-27-2009
07:27 AM
11-27-2009
07:27 AM
Hi David
I downloaded the latest version (6.30.446.64), but still only the Elapsed time option is available.
Here is some system info:
Rad studio 2007, all patches applied, debug indo present.
Windows 7x64 ultimate edition
AMD Phenom II X4 955 processor 3.2 GHz
4GB RAM
500MB Diskspace (Raid striping, 2 disks)
I noticed my processor isn't in the supported processors list. Could it be that this is the cause of my problem? Will there be a fix in the foreseeable future?
Maybe a workaround suggestion: Allow certain routines (eg waitforsingeobject) to"subtract" theïr elapsed time from all calling routines in the current call stack: this would also produce results that are accurate enough for me.
Kind Regards -
Hans
I downloaded the latest version (6.30.446.64), but still only the Elapsed time option is available.
Here is some system info:
Rad studio 2007, all patches applied, debug indo present.
Windows 7x64 ultimate edition
AMD Phenom II X4 955 processor 3.2 GHz
4GB RAM
500MB Diskspace (Raid striping, 2 disks)
I noticed my processor isn't in the supported processors list. Could it be that this is the cause of my problem? Will there be a fix in the foreseeable future?
Maybe a workaround suggestion: Allow certain routines (eg waitforsingeobject) to"subtract" theïr elapsed time from all calling routines in the current call stack: this would also produce results that are accurate enough for me.
Kind Regards -
Hans
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-02-2009
10:40 PM
12-02-2009
10:40 PM
Hi Hans,
>>
I noticed my processor isn't in the supported processors list. Could it be that this is the cause of my problem? Will there be a fix in the foreseeable future?
<<
Yes. We will try to implement support for this CPU in a couple of months. After that, the rest of the counters will became available.
>>
Maybe a workaround suggestion: Allow certain routines (eg waitforsingeobject) to"subtract" theïr elapsed time from all calling routines in the current call stack: this would also produce results that are accurate enough for me.
<<
Unfortunately, there is no way to do this, and I cannot suggest another workaround to you. You will have to use another computer for profiling until we implement support for your CPU.
--
Dmitry Nikolaev
Did my reply answer your question? Give Kudos or Accept it as a Solution to help others. ⬇️⬇️⬇️
Dmitry Nikolaev
Did my reply answer your question? Give Kudos or Accept it as a Solution to help others. ⬇️⬇️⬇️
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-03-2009
12:08 AM
12-03-2009
12:08 AM
>>Unfortunately, there is no way to do this,<<
Why not? I think calculating the "nonwaited time" after getting the "raw" elapsed time results (thus not during profiling) using the call hierarchy information could do the trick... I guess I don't know enough yet about the internal magic of AQTime to really be able to say that this is an easy task. But I;m quite sure that it can be accomplished by writing some code "in a couple of months" 😉
Should it be rephrased to "Unfortunately, there is no way to do this yet" ?
Kind regards - Hans
Why not? I think calculating the "nonwaited time" after getting the "raw" elapsed time results (thus not during profiling) using the call hierarchy information could do the trick... I guess I don't know enough yet about the internal magic of AQTime to really be able to say that this is an easy task. But I;m quite sure that it can be accomplished by writing some code "in a couple of months" 😉
Should it be rephrased to "Unfortunately, there is no way to do this yet" ?
Kind regards - Hans
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-03-2009
07:49 AM
12-03-2009
07:49 AM
Hi Hans,
We think that the better solution is to add support for a new CPU. And we are going to do this for AMD Phenom II X4 955 as soon as possible.
--
Dmitry Nikolaev
Did my reply answer your question? Give Kudos or Accept it as a Solution to help others. ⬇️⬇️⬇️
Dmitry Nikolaev
Did my reply answer your question? Give Kudos or Accept it as a Solution to help others. ⬇️⬇️⬇️
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-03-2009
06:25 PM
12-03-2009
06:25 PM
OK, Thanks.
I'll just keep waiting impatiently then 😉 - And use a different computer for profiling!
I'll just keep waiting impatiently then 😉 - And use a different computer for profiling!
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-10-2009
07:05 AM
12-10-2009
07:05 AM
I have experimented a bit with EnableProfiling(Enabled:boolean) and with this it's also not possible to "skip" the elapsed time. It simply does not record subroutine calls, but still measures the elapsed time.
What about a routine like PauseProfileTimer(Paused:boolean). Would that be hard to implement? (Still I do not know how elapsed time actually is measured).
With this routine I could write a wrapper around WaitForSingleObject like this:
function MyWaitForSingleObject(hHandle: THandle; dwMilliseconds: DWORD): DWORD;
begin
PauseProfileTimer(True);
try
Result:=windows.WaitForSingleObject(hHandle,dwMilliseconds);
finally
PauseProfileTimer(False);
end;
end;
Regards - Hans
What about a routine like PauseProfileTimer(Paused:boolean). Would that be hard to implement? (Still I do not know how elapsed time actually is measured).
With this routine I could write a wrapper around WaitForSingleObject like this:
function MyWaitForSingleObject(hHandle: THandle; dwMilliseconds: DWORD): DWORD;
begin
PauseProfileTimer(True);
try
Result:=windows.WaitForSingleObject(hHandle,dwMilliseconds);
finally
PauseProfileTimer(False);
end;
end;
Regards - Hans
