主页

索引

模块索引

搜索页面

recon info

recon:info/1-2-3-4:

% process_info的安全增强版本

erl> recon:info(<Pid>). % 进程只需是调试节点的本地进程
erl> process_info(Pid, Key).
% 常用键值
% 1.元信息(meta)
%   dictionary: 进程字典
%   group_leader: IO(文件,io:format的输出)的去向
%   registered_name: 进程名
%   status:
%     exiting 进程已经结束,但是还未被完全清除
%     waiting 进程在 receive ... end 中等待
%     running 运行中
%     runnable 准备就绪,但是尚未被调度,因为另一个进程正在运行中
%     garbage_collecting 垃圾回收中
%     suspended 不管是因为 BIF 调用,还是因为 socket 或端口缓冲满,
%       作为一种反压 机制的结果而被挂起,都是此值。仅当端口不忙时,进程才会再次变 成 runnable 的
% 2.信号(signals)
%   links: 会报告出进程所链接的所有其他进程以及端口(socket、文件描述符)列表
%     注:对于一些大的 supervisor 要小心使用,因为返回的列表中会有成千上万的项
%   monitored_by: 返回所有监控当前进程(通过 erlang:monitor/2)的进程列表
%   monitors: 和 monitored_by 相反,返回所有被当前进程监控的进程列表
%   trap_exit: 如果该进程捕获 exit,就返回 true,否则返回 false
% 3.位置(location)
%   current_function: 以 tuple 的形式({Mod, Fun, Arity})显示进程的当前运行函数
%   current_location: 显示进程在模块中的位置,显示格式为:
%         {Mod, Fun, Arity, [{file,FileName},{line, Num}]}
%   current_stacktrace: 上一个选项(current_location)的更详细版本,会以“current_location”
%         列表的形式显示当前的堆栈跟踪信息
%   initial_call: 显示进程 spawn 时运行的函数,形式为:{Mod, Fun, Arity}
% 4.内存使用(memory_used)
%   binary: 显示所有refc binary90的引用及其大小
%     注:如果此类binary分配过多,那么调用起来就不安全
%   garbage_collection: 报告进程中有关垃圾回收的信息
%     这部分信息在官方文档中被声明为“subject to change”,应当以此为准
%     这部分内容往往会包括进 程已经执行的垃圾回收的次数,
%     完整清理(full‐sweep)垃圾回收的 选项,堆大小等等
%   heap_size: 会显示进程最新代的堆大小,通常也包 括堆栈大小。返回值的单位是 word
%     典型的 Erlang 进程包含有一个“老”堆和一个“新”堆,并会经历分代型(generational)的垃圾回收
%   memory: 进程占用内存的大小,单位为字节,包括:
%     调用栈、堆以及作为进程的一 部分由 VM 使用的内部结构
%   message_queue_len: 显示进程邮箱中等待的消息个数
%   messages: 返回进程邮箱中的所有消息
%     注: 在生产环境中,这个调用是极度危险的,比如,
%       如果正在调试某个进程而导致它被锁住,那么其邮箱中会堆积上百万条消息
%       一定要先调用 message_queue_len 以确保安全
%   total_heap_size: 和 heap_size 类似,不过也会包含所有其他部分的堆,包括老堆。返回 值的单位是 word
% 5.工作量(work)
%   reductions: Erlang VM 基于 reduction 来进行调度,reduction 是一种规定的工作量单位
%       用来保证调度实现的高度可移植性(基于时间的调度很难做到在所有 Erlang 运行的 OS 上都高效)
%       进程的 reduction 值越高,表示其(在 CPU 和函数调 用意义上)所做的工作就越多

erl> recon:info(Pid, work). % 取某组的信息
erl> recon:info(Pid, [memory, status]). % 等同于process_info/2,不过会过滤不安全数据

主页

索引

模块索引

搜索页面