%%%-------------------------------------------------------------------
%%% @author cnkizy
%%% @copyright (C) 2020
%%% @doc
%%% VM内部调优排查
%%% https://www.cnblogs.com/lulu/p/4149204.html
%%% @end
%%% Created : 2021/1/23-12-05
%%%-------------------------------------------------------------------
-module(analysis_lib).
-description("analysis_lib").
-author("cnkizy").
-vsn(1).
%% API
-export([fp_pid/1, fp_apply/3, pstack/1, etop/0, etop_mem/0, etop_stop/0, gc_all/0, eprof_all/1, eprof/2]).
-export([scheduler_usage/0, scheduler_usage/1]).
-export([scheduler_stat/0, scheduler_stat/1]).
-export([trace/1, trace/2, trace_stop/0]).
-export([proc_mem_all/1, proc_mem/1, proc_mem/2]).
%% -----------------------------------------------------------------
%% Function: fp_apply/3
%% Description: 执行一次MFA并进行过程分析,fprof 结果比较详细,能够输出热点调用路径
%% CNT表示总的函数调用次数,ACC表示Trace起始经历的时间,OWN是Trace中所有函数执行的时间和(不包含调用函数的执行时间
%% 时间单位:ms
%% Detail Reference: https://www.it610.com/article/519481.htm
%% -----------------------------------------------------------------
fp_apply(M, F, A) ->
fprof:start(),
fprof:apply(M, F, A),
fprof:stop(),
fprof:profile(),
fprof:analyse({dest, "profile.txt"}).
fp_pid(Pid) ->
fprof:start(),
fprof:trace([start, {procs, Pid}]),
fprof:stop(),
fprof:profile(),
fprof:analyse({dest, "profile.txt"}).
%% ================================== 进程栈 =======================================
%% -----------------------------------------------------------------
%% Function: pstac
【Erlang】优化排查工具
最新推荐文章于 2023-03-20 15:53:08 发布
本文介绍了VM内部调优的排查方法,包括fprof的使用进行函数调用分析、pstack和etop用于进程栈和CPU/Mem监控,以及eprof和gc_all用于性能优化。此外,还提供了 scheduler_usage 和 scheduler_stat 用于调度器资源监控,以及 trace 和 proc_mem 用于内存高负载问题诊断。

最低0.47元/天 解锁文章
7410

被折叠的 条评论
为什么被折叠?



