【问题标题】:Does adding breakpoint in a matlab m file make it run slower?在 matlab m 文件中添加断点会使其运行速度变慢吗?
【发布时间】:2020-07-28 16:13:36
【问题描述】:

我有一个 matlab m 文件,基本上有两个部分

第一部分包含一个对大小为 64 的数组执行操作的大循环,循环本身运行了大约 2000 次

循环结束后,第二部分包含计算量不大的代码

在第一部分完成后,我需要调用一个断点(我通过单击编辑器窗口的左边距来执行此操作),但是每当我设置断点时,程序的第一部分执行时间要长得多

我不会更改程序本身的任何内容。断点永远不在第一节。程序在没有断点时(不到 10 秒)运行得非常快,而我在第一节之后设置断点时(大约 60 秒)

这是预期的行为吗?为什么设置断点会导致程序运行速度变慢?有没有办法解决这个问题?

Windows 10 64 位家庭版上的 MATLAB 版本 7.9.0.529 (R2009b) 64 位

【问题讨论】:

  • 您可以尝试将您的代码分成两个单独的函数,MATLAB 有可能会优化不包含断点的函数 - 这纯粹是推测
  • @Wolfie 我最终将这两个部分分成两个文件。我在一个文件中运行第一部分,然后立即运行秒文件。我只需要确保第二个文件没有任何与第一个文件同名的变量
  • 如果你让它们成为函数(而不是脚本)并正确构建你的代码,你可以从第一个调用第二个,并且变量不会相互影响

标签: matlab


【解决方案1】:

“在 matlab m 文件中添加断点会使其运行速度变慢吗?”:是的。

在所有语言*中,调试模式都比较慢,因为它需要额外的能力才能停止代码,并且会禁用解释器/编译器所做的大部分优化。

你真的无能为力(好吧,不是调试,但这违背了目的,呵呵)。

[*]:我知道

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-13
    • 2012-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 1970-01-01
    相关资源
    最近更新 更多