iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >使用python获取cpu每秒的使用率
  • 910
分享到

使用python获取cpu每秒的使用率

2024-04-02 19:04:59 910人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录获取cpu每秒的使用率要求在cpu.txt文件中python充分利用cpu多线程无法增加cpu使用率的原因如何充分使用多核跑程序1. multiprocessing2. C 语言

获取cpu每秒的使用率

要求

请获取某段时间的cpu的占有率,以持久化形式保存。

代码:

import psutil
import time
# cpu_res = psutil.cpu_percent()
# print(cpu_res)
# 每一秒获取获取cpu的占有率 --->持久化保存
# 如何将时间和对应的cpu占有率去匹配
while True:
    # 获取当前时间和cpu的占有率
    t = time.localtime()
    cpu_time = '%d:%d:%d' % (t.tm_hour, t.tm_min, t.tm_sec)
    cpu_res = psutil.cpu_percent()
    print(cpu_res)
    # 保存在文件中
    with open('cpu.txt', 'a+') as f:
        f.write('%s %s \n' % (cpu_time, cpu_res))
    time.sleep(1)

1.psutil模块表示获取本机的硬件信息

2.psutil.cpu_percent表示获取cpu的占有率

3.用元组时间可以准确获取自己想获得的时、分、秒

4.将时间——>cpu占有率写入文件cpu.txt中。

5.time.sleep(1) 表示休眠时间,等待1秒再执行。

输出结果:

在这里插入图片描述

在cpu.txt文件中

在这里插入图片描述

Python充分利用cpu

当利用python处理大规模数据或者运行一些耗时较长的程序时,往往会发现程序运行时CPU并没有跑满,哪怕开了多线程后CPU利用率仍然不高。

这是因为在默认情况下,Python 程序是单个进程,使用单 CPU 核心执行,这意味着多核处理器只使用了一个核。

「一核有难九核围观」意味着超过 50% 的算力都会被浪费。这篇文章将介绍如何解决这种情况。

多线程无法增加cpu使用率的原因

GIL 的全程为 Global Interpreter Lock ,意即全局解释器

在 Python 语言的主流实现 CPython 中,GIL 是一个货真价实的全局线程锁,在解释器解释执行任何 Python 代码时,都需要先获得这把锁才行,在遇到 I/O 操作时会释放这把锁。

如果是纯计算的程序,没有 I/O 操作,解释器会每隔 100 次操作就释放这把锁,让别的线程有机会执行(这个次数可以通过 sys.setcheckinterval 来调整)。

所以虽然 CPython 的线程库直接封装操作系统的原生线程,但 CPython 进程做为一个整体,同一时间只会有一个获得了 GIL 的线程在跑,其它的线程都处于等待状态等着 GIL 的释放。

这就意味着哪怕开了多线程CPU使用率仍然不会很高。

如何充分使用多核跑程序

有三个办法

1. multiprocessing

multiprocessing 是多进程标准库,让多进程的 python 程序编写简化到类似多线程的程度,通过多进程的方式使用多个CPU核心。

2. C 语言扩展机制

如果不想用多进程这样重量级的解决方案,可以改用 C/C++。当然,你也不用做的这么绝,只需要把关键部分用 C/c++ 写成 Python 扩展,其它部分还是用 Python 来写,让 Python 的归 Python,C 的归 C。一般计算密集性的程序都会用 C 代码编写并通过扩展的方式集成到 Python 脚本里(如 NumPy 模块)。这样在扩展里就完全可以用 C 创建原生线程,就可以充分利用 CPU 的计算资源了。

3. ctypes

不过,写 Python 扩展总是让人觉得很复杂。好在 Python 还有另一种与 C 模块进行互通的机制 : ctypes。ctypes 与 Python 扩展不同,它可以让 Python 直接调用任意的 C 动态库的导出函数。你所要做的只是用 ctypes 写些 python 代码即可。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 使用python获取cpu每秒的使用率

本文链接: https://www.lsjlt.com/news/118040.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用python获取cpu每秒的使用率
    目录获取cpu每秒的使用率要求在cpu.txt文件中python充分利用cpu多线程无法增加cpu使用率的原因如何充分使用多核跑程序1. multiprocessing2. C 语言...
    99+
    2024-04-02
  • 怎么使用python获取cpu每秒的使用率
    今天小编给大家分享一下怎么使用python获取cpu每秒的使用率的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。获取cpu每秒...
    99+
    2023-06-30
  • VBScript中如何获取CPU使用率
    本篇文章给大家分享的是有关VBScript中如何获取CPU使用率,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。VBScript通过WMI获取CPU使用率的代码On E...
    99+
    2023-06-08
  • 在NET Core 中获取 CPU 使用率
    以下文章来源于微信公众号DotNetCore实战  在 .NET Framework 中,很多人会用 PerformanceCounter 类做这件事情, 如下代码:   ...
    99+
    2024-04-02
  • php获取cpu使用率、硬盘使用、内存使用
    cpu 使用率 代码实现: 结果显示: array(1) { [0]=> string(4) "35.0"}array(1) { ["cpu"]=> float(65)} ...
    99+
    2023-09-04
    服务器 linux 运维
  • VBS中怎么利用WMI获取CPU使用率
    本篇文章为大家展示了VBS中怎么利用WMI获取CPU使用率,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。代码如下:On Error Resume Next strComputer = "....
    99+
    2023-06-08
  • 如何在NET Core中获取CPU使用率
    这篇文章主要介绍“如何在NET Core中获取CPU使用率”,在日常操作中,相信很多人在如何在NET Core中获取CPU使用率问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何在NET&...
    99+
    2023-06-26
  • 使用Python脚本获取CPU温度
    不同的linux发行版可能获取CPU温度文件的目录不所不同,可自行百度。 # fedora filepath :'/sys/class/hwmon/hwmon0/device/hwmon/hwmon0/temp2_input' #...
    99+
    2023-01-31
    脚本 温度 Python
  • CentOS下如何查看每个CPU的使用率
    本篇内容介绍了“CentOS下如何查看每个CPU的使用率”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. Linux下,如何看每个CPU的...
    99+
    2023-06-10
  • 怎么使用shell获取进程名的内存及CPU利用率
    这篇文章主要介绍“怎么使用shell获取进程名的内存及CPU利用率”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用shell获取进程名的内存及CPU利用率”文章能帮助大家解决问题。原理:1)使...
    99+
    2023-06-30
  • python如何通过psutil获取服务器cpu、内存、磁盘使用率
    psutil是一个跨平台的Python库,它允许你获取有关系统进程和系统资源使用情况的信息。它支持Windows、Linux、OS X、FreeBSD、OpenBSD和NetBSD等...
    99+
    2023-05-17
    python使用psutil获取服务器cpu python使用psutil
  • Linux中怎么获取cpu利用率
    今天就跟大家聊聊有关Linux中怎么获取cpu利用率,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、从/proc文件系统获取相关的性能参数cpu使用率: /proc/stat内存使...
    99+
    2023-06-16
  • Python中如何获取文件系统的使用率
    Python中如何获取文件系统的使用率,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。from subprocess import Popen, PIPE# 执行操作系统命令...
    99+
    2023-06-02
  • 如何使用VBS监控CPU的使用率
    小编给大家分享一下如何使用VBS监控CPU的使用率,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!'----------------------------...
    99+
    2023-06-08
  • linux如何使用管道命令执行ps获取cpu与内存占用率
    本篇内容介绍了“linux如何使用管道命令执行ps获取cpu与内存占用率”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码如下:#inclu...
    99+
    2023-06-09
  • cpu使用率100怎么办
    当CPU使用率达到100%时,表示CPU正在全力运行,无法再处理其他任务。以下是一些可能的解决方法:1. 关闭或退出一些正在运行的程...
    99+
    2023-08-24
    cpu
  • 如何使用vbs获取雅虎汇率
    这篇文章将为大家详细讲解有关如何使用vbs获取雅虎汇率,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用vbs获取雅虎汇率Function bytes2bstr(vin)  ...
    99+
    2023-06-08
  • Python实时采集Windows CPU\MEMORY\HDD使用率
    文章目录 安装psutil库在Python脚本中导入psutil库获取CPU当前使用率,并打印结果获取内存当前使用率,并打印结果获取磁盘当前使用情况,并打印结果推荐阅读 要通过Pyth...
    99+
    2023-10-24
    python windows 开发语言
  • python使用xpath获取页面元素的使用
    关于python 使用xpath获取网页信息的方法? 1、xpath的使用方法? ​ XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 ...
    99+
    2024-04-02
  • Linux如何查看CPU使用率
    在Linux中,可以使用以下命令来查看CPU使用率:1. top命令:在终端中输入`top`命令,然后按下`1`键可以显示每个CPU...
    99+
    2023-08-08
    Linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作