非常教程

Erlang 20参考手册

erl_interface

erl_malloc

C库

erl_malloc

库摘要

内存分配功能。

描述

此模块提供分配和释放内存的功能。

输出

ETERM *erl_alloc_eterm(etype)

类型

分配(ETERM)结构。

指定etype作为下列常量之一:

  • ERL_INTEGER
  • ERL_U_INTEGER (无符号整数)
  • ERL_ATOM
  • ERL_PID (Erlang进程标识符)
  • ERL_PORT
  • ERL_REF (Erlang参考)
  • ERL_LIST
  • ERL_EMPTY_LIST
  • ERL_TUPLE
  • ERL_BINARY
  • ERL_FLOAT
  • ERL_VARIABLE
  • ERL_SMALL_BIG (大数)
  • ERL_U_SMALL_BIG (大数)

ERL_SMALL_BIGERL_U_SMALL_BIG用于创建Erlang bignums,它可以包含任何大小的整数。Erlang中整数的大小是依赖于机器的,但任何大于2 ^ 28的整数都需要一个bignum。

void erl_eterm_release(void)

清除空闲列表,其中当它们被释放块放置erl_free_term()erl_free_compound()

void erl_eterm_statistics(allocated, freed)

类型

报告术语分配统计。

allocatedfreed初始化为包含有关用于分配ETERM组件的修订分配器的信息。

  • allocated当前分配给ETERM物品。
  • freed是空闲列表,其中当它们被释放块放置的长度erl_free_term()erl_free_compound()

void erl_free(ptr)

类型

称标准free()功能。

void erl_free_array(array, size)

类型

释放一系列Erlang术语。

  • array是ETERM的数组。%2A物品。
  • size数组中的术语数。

void erl_free_compound(t)

类型

通常,程序员有责任释放从任何Erl_Interface函数返回的每个Erlang术语。然而,由于构建新的Erlang术语的许多函数实际上与其他现有术语共享对象,因此程序员很难保持指向所有这些术语的指针以单独释放它们。

erl_free_compound()递归地释放与指定的Erlang项相关联的所有子项,而不管我们是否仍然持有指向这些子项的指针。

有关示例,请参见Building Terms and Patterns用户指南中的一节。

void erl_free_term(t)

类型

释放了一个Erlang术语。

void erl_malloc(size)

类型

调用标准malloc()功能。

Erlang 20

Erlang 是一种通用的面向并发的编程语言,可应付大规模开发活动的程序设计语言和运行环境。

主页 https://www.erlang.org/
源码 https://github.com/erlang/otp
版本 20
发布版本 20.1