Article View: be.comp.programming
Article #3647Re: [C/C++] CPU usage meten, WinXP
From: bomberboy
Date: Thu, 20 Nov 2003 23:36
Date: Thu, 20 Nov 2003 23:36
53 lines
3481 bytes
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-mailReferences:
<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