erl_malloc

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()功能。