elixir - 为什么在 Elixir 中访问元组的大小很快?
问题描述
我在很多地方读到过,在 Elixir 中查找元组的大小非常快,因为元组存储在连续的内存单元中。但是,for 列表的成本更高,因为需要遍历整个列表才能知道列表的长度。
我不明白如何通过位于连续的内存单元中,找出元组的大小会更快。你不是必须遍历每个单元格吗?
解决方案
元组大小被存储。列表的长度不是。
元组也是一个装箱值,因此它由一个装箱指针(1 个字)指向一个
ARITYVAL
标题(1 个字),然后出现元组的元素。
标头的 arity 部分ARITYVAL
是一个 26 位(在 32 位系统上)整数值,其中包含 tuple 中元素的数量。
— https://blog.edfine.io/blog/2016/06/28/erlang-data-representation/
推荐阅读
- python - 如何在方程中使用增量
- excel-formula - 我可以使用 SUMIF 和 OFFSET 来获取我的总数吗?
- php - 使用 facebook php sdk fb-callback.php 显示为空
- reactjs - 未找到 snapshotSerializers 选项中的模块 react-native-web/jest/serializer
- bash - 如何通过 Fortran PAUSE 消息?
- r - 在 flexdashboard 中添加动态标题,或者在 gauge() 中添加动态标题
- sql - SQL 数据整合
- python - 我正在尝试根据列('structure')组合列('cleaned_instruction')中的文本
- python - 在 BSCScan 上检索指定代币地址的最新 DEX 交易
- c++ - 不使用 stb_truetype 呈现的字母