为什么我的 python 程序在 eclipse/pydev 中调试这么慢?

2023-11-25

我有一个相对简单(没有类)的 python 2.7 程序。该程序所做的第一件事是将 sqlite 数据库读入字典中。数据库很大,但不是很大,磁盘上大约 90Meg。读入大约需要 20 秒。读入数据库后,我初始化一些变量,例如

localMax = 0
localMin = 0
firstTime = True

当我在 Eclipse-3.7.0/pydev 中调试这个程序时——即使是这些简单的代码行——调试器中的每个单步都会占用 100% 的内核,并且需要 5 到 10 秒的时间。我可以看到 python 进程的 cpu 利用率达到 100%,持续 10 秒。单步...等待 10 秒...单步...等待 10 秒...如果我仅使用 pdb 在命令行进行调试,则没有问题。如果我根本不进行调试,程序会以“正常”速度运行,与 Eclipse 中的情况没什么奇怪的。

我已经在带 4G 内存的双核 Win7 PC、带 8G 内存的 8 核 Ubuntu 盒子,甚至我的 Mac Air 上重现了这一点。多平台开发怎么样!我一直认为它会起作用某处。我在任何时候都不会出现内存不足的情况。

在每个 Eclipse 单步上,为什么 python 进程会跳转到 100% CPU,并且需要 10 秒?


根据 Mikko Ohtamaa 的提示,这是一个足够好的解决方法。我刚刚在 Mac Air 上验证了以下内容:

  • 如果我只是关闭 Eclipse GUI 中的“变量”窗口,我就可以以正常速度单步执行代码。这很棒,但是,呃,我没有变量窗口。
  • 对于我想查看的任何变量,我可以将光标悬停在该变量上并查看其值。我没有尝试将鼠标悬停在我的大字典上,这是这里的罪魁祸首。
  • 我还可以右键单击任何变量并添加“监视”,这会弹出“表达式”窗口。在这种情况下,变量只是“表达式”的退化情况(非常简单的情况)。

因此,我的解决方法是关闭 Eclipse Variable 窗口,并使用 Expressions 窗口有选择地查看变量。很痛苦,但对于我正在做的调试来说,它比 pdb 更好。

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

为什么我的 python 程序在 eclipse/pydev 中调试这么慢? 的相关文章

随机推荐

  • 如何实现android视频播放器全屏播放

    我已经实现了android视频播放器 但我不需要像这样我需要什么意思当我打开活动时我需要支付视频半屏在中心当我点击按钮全屏按钮然后我需要全屏支付 如何实现它帮助我 视频播放器活动 public class VideoPlayerActivi
  • 如何在intellij idea编辑器中删除顶行面包屑?

    我在弄清楚 IntelliJ Idea Community Edition 15 中的此显示栏时遇到问题 有谁知道这是什么和 或如何将其关闭 它被称为当前代码位置的面包屑菜单 例如 在您的图像中 您处于类 Display gt 方法 Dis
  • 通过 JDBC 集成 Spark SQL 和 Apache Drill

    我想根据使用 Apache Drill 对 CSV 数据 在 HDFS 上 执行查询的结果创建 Spark SQL DataFrame 我成功配置了 Spark SQL 使其通过 JDBC 连接到 Drill Map
  • 如何将 JSON 格式的数据从 WebView 传递到 HTML 页面

    我正在尝试将 JSON 格式的数据从 Android WebView 传递到 HTML 页面 但是 每当我尝试解析原始 JSON 数据时 应用程序就会崩溃 我希望其格式为 key data 我的应用程序的目标是解释此 JSON 数据 将其形
  • 如何检测 Angular2 中的变量变化

    我有以下配置对象 它是在构造函数运行之前设置的 config Object onSlideChangeEnd function slide any this currentSlideIndex slide activeIndex 我想通知服
  • 如何使用 C# 获取 IIS 中网站的“浏览”URL?

    假设我在 IIS 中有 站点名称 网站 我可以通过以下方式访问它的大部分功能服务器管理器我的 C 代码中的类 我似乎不知道如何获取它的 浏览 URL 就像我在下面的屏幕截图中所示的那样 如果我进入 管理网站 gt 浏览 IIS管理器 它将使
  • 在 ASP.NET MVC 中将数据传递到母版页

    在不违反 MVC 规则的情况下将数据传递到母版页 使用 ASP NET MVC 的方法是什么 就我个人而言 我更喜欢编写传递给所有视图的抽象控制器 基本控制器 或基类 如果您希望视图具有强类型视图数据类 这可能适合您 其他解决方案可能更多c
  • Google AdMob“我们将尝试不再展示该广告”[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 目前不接受答案 我正在使用 AdMob 在 Android 应用中展示广告 我已经整合了所有步骤 并且收到了广告 但突然它开始显示 我们会尽量不再展示该广告 为什么会出现这种情况 None
  • 范围运算符从最大到最小递减:10..1 [重复]

    这个问题在这里已经有答案了 Perl 有一个范围运算符 当在foreach循环 不创建临时数组 foreach 1 1 000 000 code 如果第一个整数小于第二个整数 则不运行迭代 foreach 1 000 000 1 code
  • 将 DataTable 分配给 ViewState 是持久数据的好方法吗?

    我从数据库获取一个 DataTable 并分配给 ViewState 如下所示 因为我不想每次都访问我的数据库 只想检查 DataTable 以进行后续查找 DataTable dt GetDataTable ViewState dtTab
  • 如何确定计算机是否运行 XP Service pack 3

    使用注册表或文件系统 限制的原因是我将其作为 MSI 条件语句来执行 Cheers 在注册表项下 HKLM SOFTWARE Microsoft Windows NT CurrentVersion 寻找密钥对 当前版本 Microsoft
  • 在 Emacs 中使用 Python 的 Unicode 转换问题

    我试图了解在命令行上运行与作为 Emacs elisp 函数的一部分运行时 Python 脚本行为的差异 该脚本如下所示 顺便说一句 我使用的是 Python 2 7 1 import json t Foo print json dumps
  • 您将如何在 SQL 数据库中创建和存储用户定义的自定义字段?

    我需要允许用户向记录添加新字段 例如如果有联系人记录 用户可能想要添加 SSN 数字字段和 生日 日期 日历字段 当然 他们会通过用户界面来完成此操作 这些字段应该可用于输入所有联系人记录 考虑到我的应用程序同时为许多用户运行 不是单一公司
  • Angular Universal 生成 404(和其他 HTTP 代码)标头

    我正在使用 Angular Universal 创建一个网站 它将进行服务器端渲染 以便搜索引擎可以对其进行索引 我已经编码了 404 后备路由 它正确显示了其组件 但它显示了 HTTP 200 标头代码 如何强制使用特定的标头代码 我用谷
  • iOS 应用程序在 iOS 14 及更低版本的 Testflight 上启动时崩溃,但在 iOS 15+ 上不会崩溃

    从几天前开始 我们的应用程序和 或 Testflight 遇到了一些奇怪的问题 当从 Xcode 运行时 我们的应用程序在模拟器和设备 iOS 12 iOS 14 和 iOS 15 上运行良好 但当我们运行时 它在启动时崩溃了 通过 Tes
  • 如何让 IntelliJ 对项目中的所有主文件使用 JVM 选项?

    我可以配置一个主文件以使用所需的本机 但在我的项目中有多个主要函数 因此当我可以选择调试我想要的任何一个而无需为每个函数创建配置时 我需要所有文件来使用 JVM 选项一 您可以更改下面的配置Defaults node 模板在新版本中 所有新
  • 在 Xcode 10 中构建时重置应用程序后 String.hashValue 不唯一

    我有一个 通过以下方式获取字符串的哈希值 String hashValue 代码 我在下面添加了它 该代码在 Xcode 9 4 1 中运行良好 工作良好意味着每当我关闭应用程序并重新打开它时 结果hashValue相同 唯一 privat
  • C++ 函数中静态变量的生命周期是多长?

    如果一个变量被声明为static在函数的作用域中 它仅初始化一次并在函数调用之间保留其值 它的寿命究竟是多少 它的构造函数和析构函数什么时候被调用 void foo static string plonk When will I die T
  • 从 Delphi 调用 dotNET 并返回一个字符串

    Delphi 应用程序如何调用导出函数 非 COM dotNET 程序集并让该函数返回字符串 对于我的特定应用程序来说 COM 不是一个可能的解决方案 我可以控制通话的两端 到目前为止我所尝试过的 Delphi 客户端 type TStrP
  • 为什么我的 python 程序在 eclipse/pydev 中调试这么慢?

    我有一个相对简单 没有类 的 python 2 7 程序 该程序所做的第一件事是将 sqlite 数据库读入字典中 数据库很大 但不是很大 磁盘上大约 90Meg 读入大约需要 20 秒 读入数据库后 我初始化一些变量 例如 localMa