效率与内存的权衡[关闭]

Posted

技术标签:

【中文标题】效率与内存的权衡[关闭]【英文标题】:Efficiency vs Memory tradeoff [closed] 【发布时间】:2015-02-23 19:28:27 【问题描述】:

我正在用 C++ 创建一个交互式数独板。每当用户更改值时,我想检查板是否已完成。当板上的所有空间都填满时,该板将完成。我对如何做到这一点的两个想法是:

    创建一个私有数据成员来保存填充空间的数量。要检查电路板是否已完成,我只需检查此值是否等于 boardLength^2

    创建一个成员函数,它遍历板子并在找到空格时返回 false,如果它通过板子而没有找到任何空格则返回 true

这是一个偏好问题,还是有更可接受/正确的方法来做到这一点?

【问题讨论】:

一般来说,如果您发现自己通过将代码包装在执行十亿次的循环中来对代码进行基准测试,而实际上相关代码将在每个程序执行时执行 一次,您'在浪费你的时间。 【参考方案1】:

这是一个偏好问题,还是有更可接受/更正确的方法来做到这一点?

一般来说,是一种公认​​且正确的优化方式:

当您发现实际问题时,在实际需要时针对速度或内存占用进行优化。您的项目的独特要求将决定什么构成“问题”。

否则,请优化代码的可读性和可维护性。

在您的特定情况下:

有可能无论您选择哪种算法,您的检查都会发生得如此之快,以至于您将无法对其进行测量,并且用户将永远不会注意到简单解决方案与“快速”的解决方案。任何对此进行优化的尝试(以复杂性、可读性或编写代码所花费的时间为代价)都是糟糕的权衡。

使用最简单的解决方案。完成后,如果用户输入出现明显延迟,并且您可以确认这是由于对板子完成的检查效率低下造成的,请考虑改进算法的方法。

【讨论】:

以上是关于效率与内存的权衡[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用对象 ID 与将对象填充到其他类之间的权衡是啥? [关闭]

如何将理论效率与实践示例进行比较[关闭]

SproutCore 和卡布奇诺 [关闭]

在 C++ 中声明、操作和访问未对齐的内存 [关闭]

论文阅读查询搜索中的安全和效率权衡(ACM 10.1145)

Javascript效率:'for' vs 'forEach' [关闭]