Python Inspect.stack 很慢

2023-11-26

我只是在分析我的 Python 程序,看看为什么它看起来相当慢。我发现它的大部分运行时间都花在了inspect.stack()方法(用于输出带有模块和行号的调试消息),每次调用 0.005 秒。这看起来相当高;是inspect.stack真的这么慢,还是我的程序有问题?


inspect.stack(0)可以比inspect.stack()。即便如此,最好的方法是完全避免调用它,也许可以使用如下所示的模式:

frame = inspect.currentframe()
while frame:
    if has_what_i_want(frame):  # customize
        return what_i_want(frame)  # customize
    frame = frame.f_back

请注意最后一个frame.f_back is None,然后循环就会结束。

sys._getframe(1)显然不应该使用,因为它是一个内部方法。

作为备选,inspect.getouterframes(inspect.currentframe())可以循环,但这预计会比上述方法慢。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python Inspect.stack 很慢 的相关文章

  • 处理 Python 行为测试框架中的异常

    我一直在考虑从鼻子转向行为测试 摩卡 柴等已经宠坏了我 到目前为止一切都很好 但除了以下之外 我似乎无法找出任何测试异常的方法 then It throws a KeyError exception def step impl contex
  • 用枢轴点拟合曲线 Python

    我有下面的图 我想用 2 条线来拟合它 使用 python 我设法适应上半部分 def func x a b x np array x return a x b popt pcov curve fit func up x up y 我想用另
  • 跟踪 pypi 依赖项 - 谁在使用我的包

    无论如何 是否可以通过 pip 或 PyPi 来识别哪些项目 在 Pypi 上发布 可能正在使用我的包 也在 PyPi 上发布 我想确定每个包的用户群以及可能尝试积极与他们互动 预先感谢您的任何答案 即使我想做的事情是不可能的 这实际上是不
  • 使用 kivy textinput 的 'input_type' 属性的问题

    您好 我在使用 kivy 的文本输入小部件的 input type 属性时遇到问题 问题是我制作了两个自定义文本输入 其中一个称为 StrText 其中设置了 input type text 然后是第二个文本输入 名为 NumText 其
  • Python zmq SUB 套接字未接收 MQL5 Zmq PUB 套接字

    我正在尝试在 MQL5 中设置一个 PUB 套接字 并在 Python 中设置一个 SUB 套接字来接收消息 我在 MQL5 中有这个 include
  • 使用Python请求登录Google帐户

    在多个登录页面上 需要谷歌登录才能继续 我想用requestspython 中的库以便让我自己登录 通常这很容易使用requests库 但是我无法让它工作 我不确定这是否是由于 Google 做出的一些限制 也许我需要使用他们的 API 或
  • 使用字典映射数据帧索引

    为什么不df index map dict 工作就像df column name map dict 这是尝试使用index map的一个小例子 import pandas as pd df pd DataFrame one A 10 B 2
  • YOLOv8获取预测边界框

    我想将 OpenCV 与 YOLOv8 集成ultralytics 所以我想从模型预测中获取边界框坐标 我该怎么做呢 from ultralytics import YOLO import cv2 model YOLO yolov8n pt
  • Python 2:SMTPServerDisconnected:连接意外关闭

    我在用 Python 发送电子邮件时遇到一个小问题 me my email address you recipient s email address me email protected cdn cgi l email protectio
  • Python beautifulsoup 仅限 1 级文本

    我看过其他 beautifulsoup 得到相同级别类型的问题 看来我的有点不同 这是网站 我正试图拿到右边那张桌子 请注意表的第一行如何展开为该数据的详细细分 我不想要那个数据 我只想要最顶层的数据 您还可以看到其他行也可以展开 但在本例
  • Python,将函数的输出重定向到文件中

    我正在尝试将函数的输出存储到Python中的文件中 我想做的是这样的 def test print This is a Test file open Log a file write test file close 但是当我这样做时 我收到
  • “隐藏”内置类对象、函数、代码等的名称和性质[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我很好奇模块中存在的类builtins无法直接访问的 例如 type lambda 0 name function of module
  • 如何使用 Mysql Python 连接器检索二进制数据?

    如果我在 MySQL 中创建一个包含二进制数据的简单表 CREATE TABLE foo bar binary 4 INSERT INTO foo bar VALUES UNHEX de12 然后尝试使用 MySQL Connector P
  • Jupyter Notebook 找不到 Python 模块

    不知道发生了什么 但每当我使用 ipython 氢 原子 或 jupyter 笔记本时都找不到任何已安装的模块 我知道我安装了 pandas 但笔记本说找不到 我应该补充一点 当我正常运行脚本时 python script py 它确实导入
  • 如何断言 Unittest 上的可迭代对象不为空?

    向服务提交查询后 我会收到一本字典或一个列表 我想确保它不为空 我使用Python 2 7 我很惊讶没有任何assertEmpty方法为unittest TestCase类实例 现有的替代方案看起来并不正确 self assertTrue
  • 为什么 Pickle 协议 4 中的 Pickle 文件是协议 3 中的两倍,而速度却没有任何提升?

    我正在测试 Python 3 4 我注意到 pickle 模块有一个新协议 因此 我对 2 个协议进行了基准测试 def test1 pickle3 open pickle3 wb for i in range 1000000 pickle
  • 如何应用一个函数 n 次? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 假设我有一个函数 它接受一个参数并返回相同类型的结果 def increment x return x 1 如何制作高阶函数repeat可以
  • Pandas 每周计算重复值

    我有一个Dataframe包含按周分组的日期和 ID df date id 2022 02 07 1 3 5 4 2022 02 14 2 1 3 2022 02 21 9 10 1 2022 05 16 我想计算每周有多少 id 与上周重
  • cv2.VideoWriter:请求一个元组作为 Size 参数,然后拒绝它

    我正在使用 OpenCV 4 0 和 Python 3 7 创建延时视频 构造 VideoWriter 对象时 文档表示 Size 参数应该是一个元组 当我给它一个元组时 它拒绝它 当我尝试用其他东西替换它时 它不会接受它 因为它说参数不是
  • Kivy - 单击按钮时编辑标签

    我希望 Button1 在单击时编辑标签 etykietka 但我不知道如何操作 你有什么想法吗 class Zastepstwa App def build self lista WebOps getList layout BoxLayo

随机推荐

  • Xcode 4 中的“运行 > 在 Objective-C 异常时停止”?

    也许有人知道 Xcode 4 中的 运行 gt 在 Objective C 异常时停止 菜单在哪里 我有时在 Xcode 3 中使用过它 但它在新的 IDE 中消失了 在xcode 4的左侧栏中 点击断点选项卡 第 6 个 选项卡结束 点击
  • 如何让 Maven 2 构建 2 个独立的 WAR 文件

    当做一个mvn install我想在我的目标目录中得到 2 个 WAR 文件 其中一个将包含生产 web xml另一个将包含test uat web xml 我试过这个
  • 我如何运行 Conda?

    我安装了 Anaconda 并且可以运行 Python 所以我假设我安装正确 按照此介绍性文档 我正在尝试安装 Python v3 3 因此我将以下行复制并粘贴到我的控制台中 conda create n py33 python 3 3 a
  • 将VC++的__try/__ except EXCEPTION_STACK_OVERFLOW移植到MinGW

    我正在尝试使用 VC 的 try except 语句将一些代码移植到 MinGW bool success true try except EXCEPTION STACK OVERFLOW GetExceptionCode EXCEPTIO
  • 通过 IdeaVim 在 IntelliJ 中使用 Vim 插件

    有没有办法通过 IdeaVim 在 IntelliJ 中使用 Vim 插件 在这种情况下 我正在寻找一种使用 easymotion Vim 插件的方法 您可以使用acejump插件或emacsIDEAs 不要被它的名字吓到 它只是介绍了 a
  • 使用 Pandas 从另一个数据帧中删除一个数据帧

    我有两个不同大小的数据框 df1 nad df2 我想从中删除df1存储在其中的所有行df2 所以如果我有df2等于 A B 0 wer 6 1 tyu 7 And df1等于 A B C 0 qwe 5 a 1 wer 6 s 2 wer
  • 删除R中tmap中的图例

    我有一个简单的问题 如何删除 R 中 tmap 中自动添加的图例 在这种情况下 我想删除右侧描述 级别 的图例 这是我尝试过的 tm shape densities polygons tm polygons col level palett
  • matlab:将向量划分为固定大小的重叠块

    我有一个向量 我想将其拆分为大小重叠的子向量cs轮流在sh 想象输入向量是 v 1 2 3 4 5 6 7 8 9 10 11 12 13 A 1 13 given a chunksize of 4 cs 4 和 2 sh 2 结果应如下所
  • 调用未定义函数curl_init()错误

    我在 Win 64 位操作系统 php 5 6 8 上使用 Eclipse PDT 来开发 PHP 我遇到过 Call to undefined function curl init 错误 我删除了 前extension php curl
  • D3D11:如何绘制简单的像素对齐线?

    我尝试用 D3D11 在两个顶点之间画一条线 我在 D3D9 和 D3D11 中有一些经验 但在 D3D11 中绘制一条线 从一个给定像素开始并以另一个像素结束 似乎是一个问题 我做了什么 我向每个顶点的像素坐标添加了 0 5f 以适应纹素
  • CakePHP如何通过ID数组获取多行

    我想根据 ID 数组列表从数据库中提取多行 在其他一些框架中似乎有类似 WHERE IN 的东西 但这里没有 有人可以告诉我该怎么做吗 我想知道如何通过 find 或 read 或任何其他 cakephp 函数 来做到这一点 而不是手动构建
  • Rails 库包括

    关于 lib 目录中定义的模块 我有一个令人费解的问题 我有两个文件 lib authentication rb module Authentication end lib test module rb module TestModule
  • HttpServlet 类与 Jersey 一起使用之间的混淆

    我正在构建实现 RESTful API 的 servlet 我知道 Jersey 是一个用于破译和使用给定 URL 的框架 我如何将它与HttpServlet class 我不明白两者如何相互合作 我想这是一个非常笼统的问题 但我已经阅读了
  • Python google Drive API下载,文件在哪里?

    我使用此处找到的 python 代码在谷歌驱动器上下载文件 https developers google com drive v3 web manage downloads我有这个范围 https www googleapis com a
  • GridView.scrollTo() 的解决方法?

    如上所述here Android的GridView scrollTo 不起作用 解决方案提到的方法 setSelectedPosition 似乎不存在于GridView smoothScrollToPosition确实有效 但我真的不想要动
  • pyqt qt4 QTableView如何禁用某些列的排序?

    所以我有一个 QTableView 我只想让列排序在第 1 列而不是第 2 列 自然地我尝试installEventFilter on QHeaderView or QTableView but MouseButtonPress事件不会被传
  • Rails link_to 方法: :delete

    我很抱歉问了一个可能是补救问题的问题 但在学习 Rails 时 我试图遵循本教程中的注释 http guides rubyonrails org getting started html 昨晚我在本教程中发布了一个类似的问题 并得到了及时的
  • Django 模板中的字典

    我有这样的看法 info dict u Question 1 13365 13344 u Question 2 13365 u Question 3 for key in info dict for k v in key items pro
  • JSON.NET 作为 WebAPI 2 OData 序列化器与 ODataMediaTypeFormatter

    我正在尝试使用 JSON NET 作为 WebAPI 2 堆栈中的默认序列化器 我已经实现了 JsonMediaTypeFormatter 其中使用 JSON NET 序列化器来序列化 反序列化数据 并创建了 JsonContentNego
  • Python Inspect.stack 很慢

    我只是在分析我的 Python 程序 看看为什么它看起来相当慢 我发现它的大部分运行时间都花在了inspect stack 方法 用于输出带有模块和行号的调试消息 每次调用 0 005 秒 这看起来相当高 是inspect stack真的这