rust - 如何在编译时避免堆栈溢出?
问题描述
Rust 的一般性能建议是尽可能避免将东西放在堆上。
我遇到的一个问题是,我不知道何时/何时会达到函数堆栈的大小限制,直到我的程序在运行时出现不可预测的恐慌。
两个例子是:
- 使用 Serde 从 JSON 解析深度嵌套的结构。
- 在函数中创建许多期货。
问题:
我可以通过在编译时检测它来避免这种情况吗?
我在编写代码时如何知道堆栈的限制是多少?其他人是否只知道他们变量的确切大小?
为什么人们建议尽量避免堆?
解决方案
推荐阅读
- python - 无法登录到 Django 管理面板
- java - 来自 Singleton 类的实例化对象具有空引用
- javascript - 是否可以定义一个拥有和操纵其自身值的对象?
- node.js - 如何从 ms 团队聊天 BotBuilder 上的上下文 onConversationUpdate 获取语言环境
- java - 如何读取 WSDL 文件中的环境变量?
- svn - 带有子剪辑的 CCS:为什么标签装饰和快速差异仅适用于位于项目文件夹中的文件?
- javascript - Javascript 密钥处理程序替代方案
- javascript - 如何在不点击(按钮)的情况下检查元素是否有子元素
- python - 使用 LXML 插入元素并设置属性和文本
- python - 是否可以在同一网络内的其他 docker 容器退出后停止 docker 容器?