【问题标题】:User defined stack vs system stack用户定义堆栈与系统堆栈
【发布时间】:2014-07-21 22:52:04
【问题描述】:

在使用 for 循环时,如果我们使用用户定义的堆栈,那么该堆栈是否会在系统堆内存中创建?与系统堆栈相比,用户定义的堆栈将需要更多的时间来填充?谢谢

【问题讨论】:

    标签: loops memory-management recursion stack heap-memory


    【解决方案1】:

    堆是不是系统堆栈的所有内存,所以是的。用户定义的堆栈将驻留在堆上。

    这一切都取决于。通常系统堆栈非常快,但我想你想使用用户定义的堆栈来不破坏堆栈,这意味着我们正在处理一个运行时,它添加它的帧,即使没有推送任何内容(没有参数)。在这种情况下,基于数组的堆栈可能会更快,因为您在每次迭代时推送的数据更少。

    基于其他数据结构的堆栈在效率上会有所不同,但最终永远不会像数组那样高效。

    我会一直使用系统堆栈,直到我确定我需要其他东西(在大多数语言中,您可以设置堆栈大小)并且您最终编写的代码更少,可读性和可理解性。

    如果你需要做一个堆栈,那么首先做一个可读性。因此,它很可能变得比仅仅为系统堆栈增加内存要慢。

    我打赌你可能知道3 rules of optimization

    【讨论】:

      猜你喜欢
      • 2014-06-23
      • 2023-03-23
      • 2011-05-04
      • 1970-01-01
      • 1970-01-01
      • 2020-09-26
      • 2013-10-13
      • 2012-01-18
      • 2021-02-18
      相关资源
      最近更新 更多