Comments (5)
After reading the latest psutil source code, the CPU utilization uses the GetSystemTimes API, but the calculation of the CPU utilization in the task manager after win10 has changed. The GetSystemTimes API has been a long time ago, and now it is replaced by a "performance counter", so there are inconsistencies.
The performance counter module under WMI obtains the process CPU utilization, which should be the same as what is displayed in the task manager.
https://learn.microsoft.com/en-us/windows/win32/perfctrs/performance-counters-portal
https://learn.microsoft.com/en-us/windows/win32/wmisdk/monitoring-performance-data
from psutil.
After doing a benchmark test, the CPU utilization output by psutil was 55%, and the result using a PowerShell script combined with Windows Performance Counters was 6%. The difference is nearly 10 times.
from psutil.
@giampaolo Hello, can you help me take a look?
from psutil.
Do you have any idea in what Windows version GetSystemTimes()
was "obsoleted" by performance counters? Or put it in another way, any idea when Windows task manager started using PC? I'm fine with using PC on newer Windows versions and GetSystemTimes()
for older ones. Feel free to make a PR if you know how to do this.
from psutil.
First of all, thank you for your answer. After reading the psutil documentation, I found that there is no problem in calculating the CPU utilization of a process in Windows. It was my misunderstanding.
Thanks again for your answer.
ps: I am currently testing on macOS and found that there is a problem with the calculation of CPU utilization, and I did not find a relevant explanation in the documentation. For details, see: #2411
@giampaolo
from psutil.
Related Issues (20)
- [Linux] psutil.tests.test_linux.TestSystemVirtualMemoryAgainst tests failing
- [Linux] Get laptop charging speed (in Watts)
- process_iter(): no longer check whether PIDs have been reused HOT 1
- [Linux / FreeBSD] evaluate using `pidfd_send_signal()` for signaling processes HOT 6
- Don't build with limited API for 3.13 free-threaded build
- [macOS] active system memory is inaccurate HOT 1
- Rename Process.connections() to Process.net_connections()
- Remove deprecated `Process.memory_info_ex()`
- [macOS] psutil.Process(pid).cpu_percent calculation result is inaccurate HOT 6
- [macOS] Lacking defines in <sys/mount.h> breaks build on legacy OS X HOT 1
- [Windows] Python 3.10 wheels are missing on PYPI for psutil 5.9.8
- blkio_ticks is not supported in solaris based system. (ret['blkio_ticks'] = fields[39] # aka 'delayacct_blkio_ticks')
- [Debian 12 bookworm] Repeating spikes in temperatures samples HOT 3
- About Error `FileNotFoundError: [Errno 2] No such file or directory: '/proc/12825/stat'` the some suggest HOT 11
- [Linux] cannot import name '_psutil_linux' from partially initialized module 'psutil' (most likely due to a circular import) HOT 3
- [mac os] thread id is not the native_id
- [All] Request: Make new Release and update PyPi HOT 1
- [Windows] win_service_get by PID and not by name HOT 3
- [macOS] build failure on OS X 10.4 HOT 1
- 'psutil' has no attribute 'sensors_temperatures'
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from psutil.