问题标签 [line-profiler]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
arrays - 优化 numpy 二维数组分区方法
我正在尝试根据特定列的内容将 2D numpy 数组划分为 2 个单独的 numpy 数组。这是我的代码:
注意:对于我的实验,我使用了 (14359,42) 个元素的数组。
现在,当我使用 kernprof 行分析器分析此函数时,我得到以下结果。
在这里,一行 16 占用了大量时间。将来,我将使用的实际数据量会更大。
谁能建议一种更快的分区numpy数组的方法?
python - 在二维 numpy 数组中映射列内容的优化方法
我有一个 numpy 二维数组,其中包含 0 到 100 之间的整数。对于特定列,我想按以下方式映射值:
这是我的代码:
此代码需要 8.3 秒才能运行。以下是在此代码上运行 line_profiler 的输出。
将来我必须使用比这个大得多的真实数据。谁能建议一种更快的方法来做到这一点?
python - 将 line_profiler 与 numba jited 函数一起使用
是否可以将 line_profiler 与 Numba 一起使用?
调用%lprun
装饰有的函数会@numba.jit
返回一个空配置文件:
Cython 代码有一个解决方法,但找不到 Numba 的任何东西。
arrays - 查找组合在 numpy 二维数组中出现的次数
我有一个 2D numpy 数组,我想要一个函数在数组的 col1 和 col2 上运行,如果“M”是 col1 中唯一值的数量,“N”是 col2 中唯一值的数量,则输出 1D数组的大小为 (M * N) 例如,假设 col1 中有 3 个唯一值:A1、A2 和 A3,col2 中有 2 个唯一值:X1 和 X2。那么,可能的组合是:(A1 X1),(A1 X2),(A2 X1),(A2 X2),(A3 X1),(A3 X2)。现在我想找出每个组合在同一行中一起出现的次数,即有多少行包含组合 (A1,X1) 等等。我想将计数作为一维数组返回。这是我的代码:
以下是我在此代码上运行 line_profiler 时的分析结果。
定时器单位:1e-06 s
总时间:18.1849 s 文件:testcode3.py 功能:第 2 行的 myfunc
Line # Hits Time Per Hit % Time Line Contents
如您所见,np.where 和 np.intersect1D 占用了大量时间。谁能建议更快的方法来做到这一点?将来我将不得不使用比这个大得多的真实数据,因此我需要优化这段代码。
python - python中的行分析类实例化
我有一些我正在尝试分析的现有代码。我可以通过使用kernprof@profile
添加装饰器来成功地配置配置文件类方法。
有没有一种通用的方法来分析类实例化?我有一些具有相当复杂的继承结构的类。当我尝试分析他们的初始化函数时,我得到如下信息:
这有点没用,因为我不知道__init__
正在调用什么实际的父函数(这个类有 2 个父函数,每个父函数都有一个或多个父函数)。
有没有办法更好地做到这一点?例如,有没有办法自动深入每一行,并分析被它调用的行(深度有限)?
python - Kernprof(line_profiler):如何将结果输出为文本而不是二进制文件
运行kernprof时:
输出存储在二进制文件中,可以在终端/命令行中读取。
有没有办法将结果输出到文本文件?
这似乎是有用的功能,但在文档或其他帖子中找不到。
python - 无法在 Qt 控制台中使用 pip 安装“line_profiler”
当我尝试在 QTconsole 中安装“line_profiler”时
但它失败了,“无法为线轮廓仪构建轮子”。
我不知道为什么会这样。有什么方法可以在 QTconsole 中成功安装“line_profiler”?
python-3.x - 使用 line_profiler 时出现 UnicodeEncodeError
我正在学习python并尝试逐行分析代码性能。我安装了 line_profiler 但它总是显示
UnicodeEncodeError:“charmap”编解码器无法对位置 30-31 中的字符进行编码:字符映射到未定义
我试图运行 chcp 65001 但没有用。
结果:
你好!test2()
C:\OneDrive\u684c\u9762\linecheck.py:91: DeprecationWarning: cgi.escape is deprecated, 使用 html.escape 代替 escape_html=cgi.escape(html)
<script>alert("你是个好孩子!&我喜欢你")</scrpit> 定时器单位:5.14057e-07 s
总时间:2.6731e-05 s
回溯(最近一次通话最后):
文件“C:\OneDrive\u684c\u9762\linecheck.py”,第 101 行,在
lp.print_stats()
文件“C:\Python\lib\site-packages\line_profiler.py”,第 139 行,在 print_stats
show_text(lstats.timings,lstats.unit,output_unit=output_unit,stream=stream,stripzeros=stripzeros)
文件“C:\Python\lib\site-packages\line_profiler.py”,第 261 行,在 show_text
输出单元=输出单元,流=流,stripzeros=stripzeros)
文件“C:\Python\lib\site-packages\line_profiler.py”,第 210 行,在 show_func 中
stream.write("文件: %s\n" % 文件名)
文件“C:\Python\lib\encodings\cp1252.py”,第 19 行,在编码中
返回 codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 30-31: character maps to [Finished in 5.8s]
python - 带有面向对象代码的 Python line_profiler
我正在尝试将Robert Kern 的 python line_profiler用于一些面向对象的代码,但我无法获得所需的输出。我的对象是以下形式:
我想使用@profile
装饰器对每个方法进行行分析,但是当我使用以下命令在 iPython 环境中运行分析器时:
我得到以下信息:
我在没有@profile
装饰器的情况下尝试过它,它只是告诉我所有的时间都花在了update
方法上,这很清楚。
jupyter-notebook - 在 jupyter notebook 中使用 cython 进行行分析
我正在尝试在带有 cython 功能的 jupyter 笔记本中使用 liner_profiler 库。它只工作了一半。我得到的结果只包含函数的第一行,没有分析结果。
对于分析结果 int onlt 显示一行代码