显示 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
明经通道 版权所有 未经许可 不得传播 | 评论 |