🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #3647

Re: [C/C++] CPU usage meten, WinXP

#3647
From: bomberboy
Date: Thu, 20 Nov 2003 23:36
53 lines
3481 bytes
Pieter Philippaerts schreef:

> "bomberboy" <newsbomber@pandora.invalid> wrote in message

>> In win9* kan dit gewoon gelezen worden in een registry-key, maar dat is
>> niet zo in 2k en XP.
>> Vanaf Win2k is er wel de pdh-api beschikbaar (Performance Data Helper)
>> maar ik ben er niet echt happig op om deze te gebruiken.
>> Immers:
>> Het zou ideaal zijn indien dit alles in ��n enkele methode-oproep kan
>> samengebald worden.  Het uiteindelijke doel is immers dat deze methode dan
>> via JNI in een java-klasse kan opgeroepen worden.
> 
> Op NT4 en hoger kan je de undocumented API functie NtQuerySystemInformation
> gebruiken [http://www.codeproject.com/system/cpuusage.asp]. Op Windows 9x/ME
> is er naar ��n methode om de CPU time op te vragen, en dat is via de
> registry.
> Je gaat dus een aparte implementatie moeten maken voor NT en 9x/ME, maar
> dmv. OO ga je dat wel mooi kunnen oplossen.

Voorlopig is het doelsysteem er eentje met Windows XP Tablet Edition, dus
die 9x/Me oplossing is niet echt een prioriteit.
Het is trouwens de bedoeling dat het in een OSGi-bundle gebruikt wordt, en
je kan hierbij in de Manifest file specifi�ren welke native libraries vor
welk OS moeten geladen worden.  Dus het ondersteunen van meerdere systemen
is vrij eenvoudig.

>> Een oplossing waar ik ook al aan gedacht had was hiervoor het idle-proces
>> te (mis)(ge)bruiken en via een getProcessTimes-achtige methode de tijd
>> ervan op te vragen en hieruit dan het echte gebruik af te leiden.
> 
> Lukt dat? Ik heb het niet getest, maar ik vermoed dat als je GetProcessTimes
> oproept met 0 als PID, dat die een error gaat teruggeven.

Het lukt dus inderdaad niet om dit zo te doen :-/

De oplossing met NtQuerySystemInformation, getSystemTimes() en WMI door
jou Luc en SLE voorgesteld zulen me waarschijnlijk wel al een heel stuk op
weg helpen.

Het probleem is voorlopig dat MinGW hier (nog) niet mee om kan.  Ik zal
dus bij mijn thesisbegeleider moeten gaan zagen voor Visual C++ en/of
proberen of de versies in de PC-klassen niet te verouderd zijn.
(Valt het op dat ik tot nu toe vooral onder unix-achtigen geprogrammeerd
heb?)

Bedankt, ik weet weer wat proberen, en als het lukt laat ik nog wel weten
hoe, of als ik nog problemen heb kom ik ook nog wel terug ;-)

-- 
Bruno

F u cn rd ths u cnt spl wrth a dm!
Technical Details
Message-ID: <Bdcvb.34115$H43.1061996@phobos.telenet-ops.be>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!news-out1.nntp.be!propagator2-sterling!news-in-sterling.newsfeed.com!news-out.cwix.com!newsfeed.cwix.com!ossa.telenet-ops.be!phobos.telenet-ops.be.POSTED!not-for-mail
References: <pan.2003.11.19.22.21.43.228171@pandora.invalid> <1069284054.817911@seven.kulnet.kuleuven.ac.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII
X-Google-Thread: fcea4,7f823d520c6d9a2a
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2003-11-20 15:36:02 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!news-out1.nntp.be!propagator2-sterling!news-in-sterling.newsfeed.com!news-out.cwix.com!newsfeed.cwix.com!ossa.telenet-ops.be!phobos.telenet-ops.be.POSTED!not-for-mail
From: bomberboy <newsbomber@pandora.invalid>
Organization: Me, Myself & I
Subject: Re: [C/C++] CPU usage meten, WinXP
Newsgroups: be.comp.programming
References: <pan.2003.11.19.22.21.43.228171@pandora.invalid> <1069284054.817911@seven.kulnet.kuleuven.ac.be>
Reply-To: newsbomber@pandora.be
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: 8bit
Lines: 54
Message-ID: <Bdcvb.34115$H43.1061996@phobos.telenet-ops.be>
Date: Thu, 20 Nov 2003 23:36:01 GMT
NNTP-Posting-Host: 213.224.3.87
X-Complaints-To: abuse@telenet.be
X-Trace: phobos.telenet-ops.be 1069371361 213.224.3.87 (Fri, 21 Nov 2003 00:36:01 MET)
NNTP-Posting-Date: Fri, 21 Nov 2003 00:36:01 MET