Eri*_*lun 26 python memory benchmarking ipython
我有一个简单的任务:除了测量在Python中执行一大块代码所花费的时间之外,我还需要测量给定代码块所需的内存量.
IPython有一个很好的实用程序timeit
,其工作方式如下:
In [10]: timeit 3 + 3
10000000 loops, best of 3: 24 ns per loop
Run Code Online (Sandbox Code Playgroud)
我正在寻找的是这样的:
In [10]: memit 3 + 3
10000000 loops, best of 3: 303 bytes per loop
Run Code Online (Sandbox Code Playgroud)
我知道这可能不是内置于IPython中 - 但我喜欢timeit
- memit
类比.
Tho*_*s K 36
事实上,它已经存在,作为实用命名memory_profiler
包的一部分:
In [2]: %memit np.zeros(1e7)
maximum of 3: 76.402344 MB per loop
Run Code Online (Sandbox Code Playgroud)
更多信息,请访问https://github.com/fabianp/memory_profiler#ipython-integration
编辑:要使用此功能,首先需要将其作为IPython扩展加载:
%load_ext memory_profiler
Run Code Online (Sandbox Code Playgroud)
要使IPython在启动时始终加载memory_profiler扩展,请将其添加到c.InteractiveShellApp.extensions
配置文件的列表中ipython_config.py
:
$ grep -C2 c.InteractiveShellApp.extensions ~/.ipython/profile_default/ipython_config.py
# A list of dotted module names of IPython extensions to load.
#
c.InteractiveShellApp.extensions = [
'autoreload',
'memory_profiler',
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5888 次 |
最近记录: |