我运行mprof run some-executable
并生成*.dat
个文件。
*.dat
文件的每一列表示什么?
vikas@some-host$ cat mprofile_20150224012014.dat
CMDLINE python ../asl
MEM 0.332031 1424769614.8950
MEM 7.593750 1424769614.9954
MEM 8.816406 1424769615.0957
MEM 8.816406 1424769615.1960
第1 /第2 /第3列代表什么?
[编辑]: 另外我无法运行mprof run --python。 这是我得到的错误(importerror)....看起来它无法获得配置
的定义(virtualenv)vikas @ host:$ ./mprof run --python ../ myfile.py
mprof:每0.1秒采样一次
作为Python程序运行......
Traceback (most recent call last):
File "/usr/lib64/python2.6/runpy.py", line 122, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib64/python2.6/runpy.py", line 34, in _run_code
exec code in run_globals
File "/home/vikask/memory_profiler-0.32/memory_profiler.py", line 853, in <module>
execfile(__file__, ns, ns)
File "../myfile.py", line 19, in <module>
from bsite import models, security
File "/home/vikas/bsite/models.py", line 12, in <module>
from bsite import config
ImportError: cannot import name config
答案 0 :(得分:1)
第1栏:“MEM”只是一个标签。
第二栏:RSS(常驻集大小),以兆字节为单位。因此,您的流程最终使用8.8 MB。
第3栏:Unix时间戳:
>>> import time
>>> print(time.ctime(1424769615.1960))
Tue Feb 24 01:20:15 2015
看起来mprof
只是记录流程大小。如果您想了解有关程序内部的更多具体细节(逐行),您似乎可以使用mprof run --python file.py
获取该信息(您还需要使用@profile
修饰您的函数,请参阅Usage section in the documentation)。
修改:响应ImportError&amp;您发布的追溯:您收到该错误是因为您将文件作为"../myfile.py"
运行。由于您位于bsite
目录之外,因此无法找到config.py
文件。
你需要像这样运行程序:
$ cd /home/vikas/bsite/
$ /home/vikask/memory_profiler-0.32/mprof run --python myfile.py
这样您就可以在import
工作的正确目录中。
让它发挥作用的另一种方法是build your project as a python package。执行此操作时,可以从任何位置正确导入文件。设置起来有点复杂,但这是个不错的主意。
另一个更糟糕的选择是修改PYTHONPATH
或sys.path
以使导入起作用。例如:
$ cd /home/vikask/memory_profiler-0.32/
$ PYTHONPATH=/home/vikas/bsite/ ./mprof run --python ../myfile.py
最后,看起来您正在直接从memory_profiler源运行mprof
命令。您可以通过在该目录中执行“python setup.py install
”(或使用pip install memory_profiler
)来安装软件包。然后你应该在你的PATH上有mprof
命令,并且可以从任何目录运行它。
答案 1 :(得分:1)
如果有人遇到mprof
无法在Windows上运行的问题(例如我),请执行以下操作:
安装memory_profiler
1)转到Python \ Scripts文件夹,将文件mprof
类型更改为mprof.py
2)在与1)相同的文件夹中,创建新文件mprof
,在那里添加以下文字
@echo off
python "%~dpn0.py" %*
3)保存文件并将其类型更改为mprof.bat
现在一切都应该有效。 祝你好运!