【发布时间】:2016-04-30 20:09:51
【问题描述】:
我正在 MATLAB 中开发一种组合优化算法,我有一堆条件语句,它们基本上只是检查标志,当设置为 true 时将打印某个变量的值或显示当前进度或系统状态的图形所以如果出现问题或者我需要检查它,我可以看到发生了什么。
我只是想知道这些条件语句在事物方案中实际上有多昂贵?
我通常不会担心它,但是代码中有很多这样的问题,对于大型问题实例,整个事情每次运行大约执行 20-50,000 次,所以这可能至少要多出一百万“每次运行的 if" 语句,虽然评估为 false,但必须有一些开销。
或者他们只是太快了,这并不重要?有时,一次运行可能需要长达 40 秒到一分钟。所以我想这只是其中的一小部分。
我应该将它们注释掉而不是使用标志变量吗?
【问题讨论】:
-
为什么不profile your code 发表你的结论呢?在我的意见中,在大多数情况下,假设您检查的条件不是计算量很大(在这些情况下您可以使用
||和&&运算符的短路行为,以检查一些更易于计算的条件,以可能避免“主要”条件)。还要考虑 MATLAB 的条件(黄色)断点。
标签: matlab conditional processing-efficiency