gpt4 book ai didi

iphone - 我应该避免 iPhone 上的递归吗?

转载 作者:行者123 更新时间:2023-12-03 19:11:26 26 4
gpt4 key购买 nike

我应该避免在 iPhone 上运行的代码出现递归吗?

或者换句话说,有人知道 iPhone 上的最大堆栈大小吗?

最佳答案

是的,避免递归在所有嵌入式平台上都是一件好事。

它不仅可以降低甚至消除堆栈溢出的可能性,而且通常还可以为您提供更快的代码。

您始终可以将递归算法重写为迭代算法。但这并不总是实用(想想快速排序)。解决这个问题的一种方法是以限制递归深度的方式重写算法。

introsort 是实践中如何完成的完美示例。它将快速排序的递归深度限制为 log2(元素数)。因此,在 32 位机器上,您的递归深度永远不会超过 32。

http://en.wikipedia.org/wiki/Introsort

我过去为嵌入式平台编写了很多软件(汽车娱乐系统、电话、游戏机等),并且我总是确保对递归深度设置上限或避免递归首先。

因此,我的程序都没有因堆栈溢出而死掉,并且大多数程序都对 32kb 堆栈感到满意。一旦您需要多个线程,因为每个线程都有自己的堆栈,这会带来很大的返回。这样您可以节省兆字节的内存。

关于iphone - 我应该避免 iPhone 上的递归吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/688496/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com