明经通道 AutoLISP 函数  
mem
 

显示 AutoLISP 内存的当前状态

(mem)

mem 函数显示内存的使用状况统计。统计报告的第一行包含下列信息:

GC calls

AutoLISP 开始以来清理节点表调用的次数。

GC run time

清理节点表花费的总时间(微秒)。

LISP 对象在动态内存中进行分配。动态内存按段组织并划分为页。内存说明的开头是一行文字:“Dynamic memory segments statistics:”

PgSz

动态内存页的大小 (KB)

Used

已使用的页数。

Free

自由页(空页)的数目。

FMCL

自由页的最大连续区域。

Segs

已分配的段数。

Type

该段中已分配的对象类型的内部说明,包括:

LISP 堆栈:LISP 内部堆栈

字节代码区域:生成的函数模块

CONS 内存:CONS 对象

::new:要求使用该段的未分类内存请求

DM Str:动态字符串体

DMxx 内存:所有其他 LISP 节点

bstack 体:用于 IO 操作的内部结构

报告的最后一行列出了最小段大小和已分配段的数目。AutoLISP 保留不超过三个自由段以便保存内存请求的系统调用。

所有堆内存都是全局的,即所有 AutoCAD 文档共享同一个堆。这一特性在后续版本的 AutoCAD 中可能会有所变化。

请注意,mem 函数不会列出所有来自操作系统的内存请求,而只列出向 AutoLISP DM 子系统发出的请求。有些 AutoLISP 类不使用 DM 进行内存分配。

返回值

nil

示例

命令: (mem)

; GC calls: 23; GC run time: 298 ms
Dynamic memory segments statistic:
PgSz  Used  Free  FMCL  Segs  Type
 512    79    48    48     1  lisp stacks
 256  3706   423   142    16  bytecode area
4096   320    10    10    22  CONS memory
  32   769  1213  1089     1  ::new
4096   168    12    10    12  DM Str
4096   222     4     4    15  DMxx memory
 128     4   507   507     1  bstack body
Segment size: 65536, total used: 68, free: 0
nil

明经通道 版权所有 未经许可 不得传播

 评论