查找运行python scrip的内存使用率、CPU利用率和执行时间

2024-04-29 08:56:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python,假设我有如下代码

示例.py

import os, psutil
import MySQLdb as mdb

conn = mdb.connect(user='root', passwd='redhat', db='File_Data', host='localhost', charset="utf8")
file_path = "/home/local/user/Module/File_processing/part-file.txt"
p = psutil.Process(os.getpid())
cursor = conn.cursor()

for line in file_open:
    result = line.split('\t')
    query = "insert into PerformaceReport (campaignID, keywordID, keyword, avgPosition)"
    query += " VALUES (%s,%s,'%s',%s)%(result[0],result[1],result[2],result[3])"
    cursor.execute( query )
conn.commit()

print p.get_cpu_times()
print p.get_memory_percent()

上述代码从文本文件中读取数据并保存到数据库中,运行良好

我正在用命令python path/to/the/example.py运行文件

现在我要做的是找到/捕捉以下三个值/信息

  1. python脚本(example.py)读取数据并将数据保存到数据库所用的execution time总数
  2. CPU utilization运行(执行)python脚本(example.py)时
  3. Memory usage运行(执行)python脚本(example.py)时

我已经搜索了很多,找到了一些信息hereherehere,每个解释都有不同的方法,我真的很困惑,无法理解当脚本example.py运行时,如何捕获上述三个值的方法

有谁能为我提供一个工作示例(代码)来适应/捕获上面提到的我的需要的上述值,以便我可以进一步扩展到我的进一步需要

已编辑

遵循的过程

1。用于查找执行时间

使用下面的命令运行example.py文件

  python -m cProfile -o file.profile example.py 

2。用于查找CPU使用情况

在example.py运行后在终端中执行top命令

结果:

   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
  1354 root      20   0  138m  17m 7200 S  2.0  0.6   2:40.50 Xorg                                             
  2672 shivakri  20   0  581m  19m  12m S  1.3  0.6   0:07.60 gnome-terminal                                   
  2587 shivakri  20   0  987m 168m  33m S  1.0  5.6   5:25.26 firefox                                          
  2780 shivakri  20   0 1233m  51m  16m S  1.0  1.7   0:16.51 gedit                                            
  2163 shivakri  20   0  821m 135m  43m S  0.7  4.5   4:58.74 chrome                                           
  1938 shivakri  20   0  567m  15m  11m S  0.3  0.5   0:06.64 metacity  
  ........
  ........

在上面的结果中,如何/在哪里可以找到CPU/内存利用率值,是否需要从包含gnome-terminal的行中获取值%CPU %MEM?(因为我们是通过终端运行文件?)

Aslotop用于查找正在运行的总cpu利用率进程,但我们只需要查找example.py脚本在执行/运行时的cpu利用率,我是指在运行文件(example.py)时使用了多少cpu和内存

最后,我的目的是在运行python脚本(example.py)时,必须将执行时间、运行脚本所占用的CPU利用率和用于运行脚本的内存记录/存储在某个位置(在文本文件中)或其他地方


Tags: 文件代码py命令脚本exampleresult利用率
1条回答
网友
1楼 · 发布于 2024-04-29 08:56:44

用于时间分析

  1. cd进入包含example.py的目录(让我们调用这个exampledir)。
  2. 运行python -m cProfile -o example.profile example.py
  3. download RunSnake然后把它放在任何地方
  4. cd打开RunSnake的目录
  5. 运行python runsnake.py exampledir/example.profile

用于CPU分析

  1. 使用^{}
    1. myProcess = psutil.Process(os.getpid())创建一个新的psutil.Process
    2. 根据需要调用myProcess.get_memory_info()myProcess.get_ext_memory_info()myProcess.get_memory_percent()

用于内存分析

  1. easy_installpip安装meliae
  2. example.py的顶部添加以下代码行:

from meliae import scanner # [[source](http://www.vrplumber.com/programming/runsnakerun/)]
scanner.dump_all_objects( filename ) # you can pass a file-handle if you prefer

  1. 运行runsnakemem fpath,其中fpath是上面代码中使用的文件的路径。

这将为您提供一个类似于RunSnakeRun的可视化内存分析器。

希望这有帮助

相关问题 更多 >