我正在使用python,并假设我有一些代码如下
example.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
现在我要做的是找到/捕获以下三个值/信息
execution time
)用于读取数据并将数据保存到数据库的总example.py
CPU utilization
)运行(执行)时,example.py
当python脚本(Memory usage
)运行(执行)example.py
醇>
我已经搜索了很多内容并找到了一些信息here,here和here,每个解释都有不同的方法,我真的很困惑,无法理解如何捕获的方法当脚本example.py
运行时,以上三个值在SO
任何人都可以请我提供一个适合我上面提到的上述值的工作示例(代码),以便我可以进一步扩展到我的进一步需求
已修改
遵循流程
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 /内存利用率值,我是否需要从包含%CPU %MEM
的行中取值gnome-terminal
? (因为我们通过终端运行文件?)
Aslo top
用于查找正在运行的总cpu利用率进程,但我们需要在执行/运行时查找example.py脚本的cpu利用率,我的意思是CPU,内存是多少在我们运行文件时使用(example.py)
最后我的意图是当我运行python脚本(example.py)时,执行时间,运行脚本所花费的CPU利用率以及用于运行脚本的内存等值必须记录/存储在某些位置(在文本文件中)或其他东西
答案 0 :(得分:8)
进行时间分析
cd
进入包含example.py
的目录(让我们称之为exampledir
)。python -m cProfile -o example.profile example.py
cd
进入解压缩RunSnake python runsnake.py exampledir/example.profile
用于CPU性能分析
psutil
psutil.Process
myProcess = psutil.Process(os.getpid())
myProcess.get_memory_info()
或myProcess.get_ext_memory_info()
或myProcess.get_memory_percent()
用于内存分析
easy_install
或pip
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
runsnakemem fpath
,其中fpath
是您在上述代码中使用的文件的路径。这应该会为您提供一个类似于RunSnakeRun所用内容的可视内存分析器。
希望这有帮助
答案 1 :(得分:0)
如果有人仍在搜索有关此要求的任何内容,这是一篇内容丰富的博客文章: