473,473 Members | 1,936 Online
Bytes | Software Development & Data Engineering Community
Create Post

Home Posts Topics Members FAQ

How do I get the PC's Processor speed?

Hi,

We use a script here at work that runs whenever someone logs into
their machine that logs various bits of information to a database. One
of those bits is the CPU's model and speed. While this works in 95% of
the time, we have some fringe cases where the only thing returned is
the processor name. We use this data to help us decide which PCs need
to be updated, so it would be nice to have the processor speed in all
cases.

Currently, this script is run on Windows boxes only, most of which
have Windows XP on them. Right now I am having Python check the
following registry key for the CPU info: HKEY_LOCAL_MACHINE\HARDWARE\
\DESCRIPTION\\System\\CentralProcessor\\0

I've also used Tim Golden's WMI module like so:

<code>

import wmi
c = wmi.WMI()
for i in c.Win32_Processor ():
cputype = i.Name

</code>

On the problem PCs, both of these methods give me the same information
(i.e. only the processor name). However, if I go to "System
Properties" and look at the "General" tab, it lists the CPU name and
processor speed. Does anyone else know of another way to get at this
information?

Thanks!

Mike

Nov 6 '07 #1
11 6464
On Nov 6, 2007 1:18 PM, <ky******@gmail.comwrote:
Hi,

We use a script here at work that runs whenever someone logs into
their machine that logs various bits of information to a database. One
of those bits is the CPU's model and speed. While this works in 95% of
the time, we have some fringe cases where the only thing returned is
the processor name. We use this data to help us decide which PCs need
to be updated, so it would be nice to have the processor speed in all
cases.

Currently, this script is run on Windows boxes only, most of which
have Windows XP on them. Right now I am having Python check the
following registry key for the CPU info: HKEY_LOCAL_MACHINE\HARDWARE\
\DESCRIPTION\\System\\CentralProcessor\\0

I've also used Tim Golden's WMI module like so:

<code>

import wmi
c = wmi.WMI()
for i in c.Win32_Processor ():
cputype = i.Name

</code>

On the problem PCs, both of these methods give me the same information
(i.e. only the processor name). However, if I go to "System
Properties" and look at the "General" tab, it lists the CPU name and
processor speed. Does anyone else know of another way to get at this
information?
You'd want the MaxClockSpeed property. There's a few other clock speed
properties as well, see
http://msdn2.microsoft.com/en-us/library/aa394373.aspx.

MSDN should always be your first stop with WMI questions, by the way.
Nov 6 '07 #2
On Nov 6, 1:35 pm, "Chris Mellon" <arka...@gmail.comwrote:
On Nov 6, 2007 1:18 PM, <kyoso...@gmail.comwrote:
Hi,
We use a script here at work that runs whenever someone logs into
their machine that logs various bits of information to a database. One
of those bits is the CPU's model and speed. While this works in 95% of
the time, we have some fringe cases where the only thing returned is
the processor name. We use this data to help us decide which PCs need
to be updated, so it would be nice to have the processor speed in all
cases.
Currently, this script is run on Windows boxes only, most of which
have Windows XP on them. Right now I am having Python check the
following registry key for the CPU info: HKEY_LOCAL_MACHINE\HARDWARE\
\DESCRIPTION\\System\\CentralProcessor\\0
I've also used Tim Golden's WMI module like so:
<code>
import wmi
c = wmi.WMI()
for i in c.Win32_Processor ():
cputype = i.Name
</code>
On the problem PCs, both of these methods give me the same information
(i.e. only the processor name). However, if I go to "System
Properties" and look at the "General" tab, it lists the CPU name and
processor speed. Does anyone else know of another way to get at this
information?

You'd want the MaxClockSpeed property. There's a few other clock speed
properties as well, seehttp://msdn2.microsoft.com/en-us/library/aa394373.aspx.

MSDN should always be your first stop with WMI questions, by the way.
That's true, but I didn't just use WMI to try to get this information.
I also looked in the registry...although I forgot to mention that I
used the _winreg module to do so.

I did see that when I looked at Microsoft's Python scripts here:
http://www.microsoft.com/technet/scr....mspx?mfr=true

MaxClockSpeed doesn't report the speed the same way MS does in the
System Properties, but I suppose I can work around that. Although this
will make AMD 3800+ procs look much slower (i.e. 2.4 Ghz in this
case).

Mike

Nov 6 '07 #3
On Nov 6, 2007 2:12 PM, <ky******@gmail.comwrote:
On Nov 6, 1:35 pm, "Chris Mellon" <arka...@gmail.comwrote:
On Nov 6, 2007 1:18 PM, <kyoso...@gmail.comwrote:
Hi,
We use a script here at work that runs whenever someone logs into
their machine that logs various bits of information to a database. One
of those bits is the CPU's model and speed. While this works in 95% of
the time, we have some fringe cases where the only thing returned is
the processor name. We use this data to help us decide which PCs need
to be updated, so it would be nice to have the processor speed in all
cases.
Currently, this script is run on Windows boxes only, most of which
have Windows XP on them. Right now I am having Python check the
following registry key for the CPU info: HKEY_LOCAL_MACHINE\HARDWARE\
\DESCRIPTION\\System\\CentralProcessor\\0
I've also used Tim Golden's WMI module like so:
<code>
import wmi
c = wmi.WMI()
for i in c.Win32_Processor ():
cputype = i.Name
</code>
On the problem PCs, both of these methods give me the same information
(i.e. only the processor name). However, if I go to "System
Properties" and look at the "General" tab, it lists the CPU name and
processor speed. Does anyone else know of another way to get at this
information?
You'd want the MaxClockSpeed property. There's a few other clock speed
properties as well, seehttp://msdn2.microsoft.com/en-us/library/aa394373.aspx.

MSDN should always be your first stop with WMI questions, by the way.

That's true, but I didn't just use WMI to try to get this information.
I also looked in the registry...although I forgot to mention that I
used the _winreg module to do so.

I did see that when I looked at Microsoft's Python scripts here:
http://www.microsoft.com/technet/scr....mspx?mfr=true

MaxClockSpeed doesn't report the speed the same way MS does in the
System Properties, but I suppose I can work around that. Although this
will make AMD 3800+ procs look much slower (i.e. 2.4 Ghz in this
case).

System Properties probably uses current clock speed, which will
usually be lower than max clock speed on modern processors, which
scale their speed with load.
Nov 6 '07 #4
http://www.linuxhardware.org/feature.../1514233.shtml

AMD has historically used model numbers that are slightly higher than
the actual clock speed. I have a 2300 that runs at 1.9.

-Jeff

On Nov 6, 2007, at 3:27 PM, Chris Mellon wrote:
On Nov 6, 2007 2:12 PM, <ky******@gmail.comwrote:
>On Nov 6, 1:35 pm, "Chris Mellon" <arka...@gmail.comwrote:
>>On Nov 6, 2007 1:18 PM, <kyoso...@gmail.comwrote:

Hi,

We use a script here at work that runs whenever someone logs into
their machine that logs various bits of information to a
database. One
of those bits is the CPU's model and speed. While this works in
95% of
the time, we have some fringe cases where the only thing returned
is
the processor name. We use this data to help us decide which PCs
need
to be updated, so it would be nice to have the processor speed in
all
cases.

Currently, this script is run on Windows boxes only, most of which
have Windows XP on them. Right now I am having Python check the
following registry key for the CPU info: HKEY_LOCAL_MACHINE
\HARDWARE\
\DESCRIPTION\\System\\CentralProcessor\\0

I've also used Tim Golden's WMI module like so:

<code>

import wmi
c = wmi.WMI()
for i in c.Win32_Processor ():
cputype = i.Name

</code>

On the problem PCs, both of these methods give me the same
information
(i.e. only the processor name). However, if I go to "System
Properties" and look at the "General" tab, it lists the CPU name
and
processor speed. Does anyone else know of another way to get at
this
information?

You'd want the MaxClockSpeed property. There's a few other clock
speed
properties as well, seehttp://msdn2.microsoft.com/en-us/library/aa394373.aspx
.

MSDN should always be your first stop with WMI questions, by the
way.

That's true, but I didn't just use WMI to try to get this
information.
I also looked in the registry...although I forgot to mention that I
used the _winreg module to do so.

I did see that when I looked at Microsoft's Python scripts here:
http://www.microsoft.com/technet/scr....mspx?mfr=true

MaxClockSpeed doesn't report the speed the same way MS does in the
System Properties, but I suppose I can work around that. Although
this
will make AMD 3800+ procs look much slower (i.e. 2.4 Ghz in this
case).


System Properties probably uses current clock speed, which will
usually be lower than max clock speed on modern processors, which
scale their speed with load.
--
http://mail.python.org/mailman/listinfo/python-list
Nov 6 '07 #5
On Nov 6, 2:27 pm, "Chris Mellon" <arka...@gmail.comwrote:
On Nov 6, 2007 2:12 PM, <kyoso...@gmail.comwrote:
On Nov 6, 1:35 pm, "Chris Mellon" <arka...@gmail.comwrote:
On Nov 6, 2007 1:18 PM, <kyoso...@gmail.comwrote:
Hi,
We use a script here at work that runs whenever someone logs into
their machine that logs various bits of information to a database. One
of those bits is the CPU's model and speed. While this works in 95% of
the time, we have some fringe cases where the only thing returned is
the processor name. We use this data to help us decide which PCs need
to be updated, so it would be nice to have the processor speed in all
cases.
Currently, this script is run on Windows boxes only, most of which
have Windows XP on them. Right now I am having Python check the
following registry key for the CPU info: HKEY_LOCAL_MACHINE\HARDWARE\
\DESCRIPTION\\System\\CentralProcessor\\0
I've also used Tim Golden's WMI module like so:
<code>
import wmi
c = wmi.WMI()
for i in c.Win32_Processor ():
cputype = i.Name
</code>
On the problem PCs, both of these methods give me the same information
(i.e. only the processor name). However, if I go to "System
Properties" and look at the "General" tab, it lists the CPU name and
processor speed. Does anyone else know of another way to get at this
information?
You'd want the MaxClockSpeed property. There's a few other clock speed
properties as well, seehttp://msdn2.microsoft.com/en-us/library/aa394373.aspx.
MSDN should always be your first stop with WMI questions, by the way.
That's true, but I didn't just use WMI to try to get this information.
I also looked in the registry...although I forgot to mention that I
used the _winreg module to do so.
I did see that when I looked at Microsoft's Python scripts here:
http://www.microsoft.com/technet/scr...python/pyindex....
MaxClockSpeed doesn't report the speed the same way MS does in the
System Properties, but I suppose I can work around that. Although this
will make AMD 3800+ procs look much slower (i.e. 2.4 Ghz in this
case).

System Properties probably uses current clock speed, which will
usually be lower than max clock speed on modern processors, which
scale their speed with load.
I don't think so. For example, my PC has an "AMD Athlon(tm) 64
Processor 3800+", which is what's reported in System Properties. On
one of the problem PCs, System Properties lists it as "AMD Athlon(tm)
1.73 Ghz".

The 3800+ on my machine is reflected in the registry key I mentioned
and WMI also finds that somewhere. But the 1.73 Ghz is in neither of
these places. However, using MaxClockSpeed and dividing by 1000 along
with some string manipulation gets me closer...although I think this
may cause potential problems.

Thanks for the feedback.

Mike

Nov 6 '07 #6
On the problem PCs, both of these methods give me the same information
(i.e. only the processor name). However, if I go to "System
Properties" and look at the "General" tab, it lists the CPU name and
processor speed. Does anyone else know of another way to get at this
information?
This information is hardware dependent and probably unreliable.

Why not run a benchmark and report the results instead?
Like bogomips? <URL:http://en.wikipedia.org/wiki/Bogomips>

Nov 6 '07 #7
On Nov 6, 2:51 pm, "Michael Bacarella" <m...@gpshopper.comwrote:
On the problem PCs, both of these methods give me the same information
(i.e. only the processor name). However, if I go to "System
Properties" and look at the "General" tab, it lists the CPU name and
processor speed. Does anyone else know of another way to get at this
information?

This information is hardware dependent and probably unreliable.

Why not run a benchmark and report the results instead?
Like bogomips? <URL:http://en.wikipedia.org/wiki/Bogomips>
That's an interesting idea, but this is in a login script, so I can't
exactly run benchmarks while logging in as the users will get
impatient quite quickly. They already think the scripts take too long
as it is.

While this information may be unreliable, it is desired by my boss for
the express purpose of budgeting upgrades in our organization.

Thanks!

Mike

Nov 6 '07 #8
Is this a WMI function or a PyWin32 function? I guess I'm not seeing
how to actually implement this in Python. Sounds intriguing though.
Neither, nor. It's a Win32 function, period (not Py). You would have to
use ctypes or some such to call it. See

http://msdn2.microsoft.com/en-us/library/ms724509.aspx

Regards,
Martin
Nov 6 '07 #9
On Nov 6, 2007 3:09 PM, <ky******@gmail.comwrote:
On Nov 6, 2:51 pm, "Michael Bacarella" <m...@gpshopper.comwrote:
On the problem PCs, both of these methods give me the same information
(i.e. only the processor name). However, if I go to "System
Properties" and look at the "General" tab, it lists the CPU name and
processor speed. Does anyone else know of another way to get at this
information?
This information is hardware dependent and probably unreliable.

Why not run a benchmark and report the results instead?
Like bogomips? <URL:http://en.wikipedia.org/wiki/Bogomips>

That's an interesting idea, but this is in a login script, so I can't
exactly run benchmarks while logging in as the users will get
impatient quite quickly. They already think the scripts take too long
as it is.

While this information may be unreliable, it is desired by my boss for
the express purpose of budgeting upgrades in our organization.
For this purpose, the make/model of the CPU is probably much more
useful than any measure (maximum or scaled) of the actual clock speed.
Incidentally, it's also faster to gather.
Nov 6 '07 #10
This information is hardware dependent and probably unreliable.

Why not run a benchmark and report the results instead?
Like bogomips? <URL:http://en.wikipedia.org/wiki/Bogomips>

That's an interesting idea, but this is in a login script, so I can't
exactly run benchmarks while logging in as the users will get
impatient quite quickly. They already think the scripts take too long
as it is.
Bogomips can be easily calculated in 10ms. The Linux kernel calculates it
during
system boot. There's an ANSI C utility floating around that you could
distribute.
Just a thought...
While this information may be unreliable, it is desired by my boss for
the express purpose of budgeting upgrades in our organization.
The information that gets displayed in the System Properties / General tab
is,
I believe, a string copied out of the CPU. I've had systems where it used
to simply say "Pentium" in that box as well. That's why it strikes me as
unreliable.

Executing the CPUID instruction may be helpful if you can figure out how
these guys are using it:
http://www.cpuid.com/cpuz.php

Nov 6 '07 #11
On Nov 6, 3:56 pm, "Michael Bacarella" <m...@gpshopper.comwrote:
This information is hardware dependent and probably unreliable.
Why not run a benchmark and report the results instead?
Like bogomips? <URL:http://en.wikipedia.org/wiki/Bogomips>
That's an interesting idea, but this is in a login script, so I can't
exactly run benchmarks while logging in as the users will get
impatient quite quickly. They already think the scripts take too long
as it is.

Bogomips can be easily calculated in 10ms. The Linux kernel calculates it
during
system boot. There's an ANSI C utility floating around that you could
distribute.
Just a thought...
While this information may be unreliable, it is desired by my boss for
the express purpose of budgeting upgrades in our organization.

The information that gets displayed in the System Properties / General tab
is,
I believe, a string copied out of the CPU. I've had systems where it used
to simply say "Pentium" in that box as well. That's why it strikes me as
unreliable.

Executing the CPUID instruction may be helpful if you can figure out how
these guys are using it:
http://www.cpuid.com/cpuz.php
Good point. I'm not sure where to start, but I may give it a whack
tomorrow if things stay quiet.

Thanks,

Mike

Nov 6 '07 #12

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

5
by: Tom Locke | last post by:
Hi All, I'd be grateful if anyone could provide insight into choosing a good i386 processor for Python performance. Are any of the following of particular importance, or less relevant, with...
1
by: santhosh_176 | last post by:
:I Created a Pocket PC application for iPAQ 5450. Every thing went fine even installer creation. I could run the setup and install it into the actual device and worked fine. The application enables...
5
by: Oliver Huppert | last post by:
Hi all, can someone tell me what I need to develop applications for PPC2003 with C#? I have read several meanings about this topic. Do I need Visual Studio .NET or is Visual C# .NET Standard...
17
by: Jim Strickland | last post by:
We currently are running a data intensive web service on a Mac using 4D. The developers of our site are looking at converting this web service to PostgreSQL. We will have a backup of our three...
0
by: rajkar001 | last post by:
Hi everybody, I would be glad if anybody can help me in retrieving a unique PC id. I believe only Processor id and MAC addr are unique for a PC. But MAC addr is unique until u do not change...
5
by: nano2k | last post by:
Hi I need to protect my application in a way. Just a "soft" protection, not a very strong one. So, using WMI I get the processor ID and compare it against a key. Protection works well, until...
5
blossam
by: blossam | last post by:
hi frnds, this is my first question, hope u will help me i want to find some uniw no from pc using which i can identify all pc uniqly like processor no, motherbord id or any processor serial no ...
5
by: Terry Metcalfe | last post by:
I have an Asus A696 pocket PC. I have written a small test program in VB6 called "Pocket PC" and compiled it just as I would normally do to run on my desk top. It runs on my desk top perfectly...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
1
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...
1
muto222
php
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.