You need to enable JavaScript to run this app.
文档中心
应用性能监控全链路版

应用性能监控全链路版

复制全文
下载 pdf
SDK 接入
性能监控
复制全文
下载 pdf
性能监控
性能监控目前可以采集Windows和Mac的CPU和内存信息。​
前提条件​
初始化Parfait SDK。持有初始化成功的parfait_wrapper_ptr指针。具体请参见接入说明。​
主进程接入性能监控​
步骤一:开启上报​
业务需要调用Upload()显示开启性能监控数据的周期上传。一旦开启,Parfait将根据report_interval的数值定期上传数据,直至Parfait SDK退出。​
说明​
此方法在Parfait SDK初始化后仅需要调用一次。​
​
/**​
* 触发自定义事件/自定义日志/性能监控数据的自动间隔循环上传​
**/​
void ParfaitWrapperBase::Upload();​
​
示例代码:​
parfait_wrapper_ptr->Upload();​
​
步骤二:设置场景​
根据业务选择是否设置场景信息。调用后性能数据会带上该场景tag,可用于在平台上筛选不同场景的数据。​
​
/**​
* 设置场景,可随时调用该接口​
* @param scene 场景信息​
*/​
void ParfaitWrapperBase::SetPerformanceScene(const char* scene);​
​
示例代码:​
// 1.初始化SDK​
// 2.当前场景为刚启动,设置场景为launch​
parfait_wrapper_ptr->SetPerformanceScene("launch");​
// 3.应用启动完成,进入running状态​
parfait_wrapper_ptr->SetPerformanceScene("running");​
​
步骤三:设置采集频率​
创建性能监控的config,用于设置各类数据的采集频率。​
注意​
如果采集时间间隔过短,会采集并上报大量性能事件,消耗事件量。​
​
struct PerformanceConfig {​
int collect_interval_s = 5; //collect_interval_s为采集间隔时间​
int aggregate_interval_s = 5; //aggregate_interval_s为聚合间隔时间​
RECORD_INTERVAL upload_interval_s = INTERVAL_30; //upload_interval_s为数据上报时间​
};​
​
parfait::PerformanceConfig config = {10, 10, parfait::INTERVAL_30};​
​
假设开启了内存监控,采集频率的配置是collect_interval_s为10s,aggregate_interval_s为30s,upload_interval_s为INTERVAL_30。那么PC端性能监控表现为:​
  • 每隔10s采集一次内存监控值​
  • 每隔30s聚合前3次内存监控值,取3次的平均值为最终结果​
  • 每隔30s上报一次最终结果​
步骤四:开启CPU监控​
说明​
由于系统限制,Mac只能采集本进程的性能监控数据。Windows可以采集指定pid的性能监控数据。​
采集指标​
​
指标名​
采集方式​
进程CPU使用率(%)​
  • Windows:两次采集点之间内核模式和用户模式所用时间之和的差值(GetProcessTimes)/两次采集点实际时间差值(GetSystemTimeAsFileTime)/CPU核数​
  • Mac:所有线程的cpu_usage之和​
系统CPU使用率(%)​
  • Windows:两次采集点之间GetSystemTimes返回的​
  • (lpKernelTime - lpIdleTime + lpUserTime) / (lpKernelTime + lpUserTime)​
  • Mac:host_statistics(HOST_CPU_LOAD_INFO)返回的​
  • Sum of cpu_tick(CPU_STATE_USER + CPU_STATE_SYSTEM + CPU_STATE_NICE)/Sum of cpu_tick(CPU_STATE_USER + CPU_STATE_SYSTEM + CPU_STATE_NICE + CPU_STATE_IDLE)​
​
API​
​
#include "ParfaitWrapperBase.h"​
/**​
* 启动本进程cpu性能监控。如果win下需要监控其他进程,请使用带pid的方法​
* mac只能调用此方法,即只能监控本进程​
* @param config 性能监控config​
*/​
void ParfaitWrapperBase::StartCPUMonitor(const PerformanceConfig& config);​
​
/**​
* 启动cpu性能监控,mac调用此方法不生效​
* @param config 性能监控config​
* @param pid 进程pid​
* @param process_name pid所绑定的进程标识,对应apmplus平台上的进程名​
*/​
void ParfaitWrapperBase::StartCPUMonitor(const PerformanceConfig& config,​
int pid, ​
const char* process_name);​
​
示例代码:​
// 开启本进程的CPU监控​
parfait::PerformanceConfig config = {10, 10, parfait::INTERVAL_30};​
parfait_wrapper_ptr->StartCPUMonitor(config);​
​
步骤五:开启内存监控​
说明​
由于系统限制,Mac只能采集本进程的性能监控数据。Windows可以采集指定pid的性能监控数据。​
采集指标​
​
指标名​
说明​
采集方式​
进程虚拟内存(MB)​
进程虚拟内存,即process_vss​
  • Windows:GetProcessMemoryInfo返回的PROCESS_MEMORY_COUNTERS的PagefileUsage​
  • Mac:mach_task_basic_info返回的virtual_size​
进程内存(MB)​
进程常驻内存大小,即process_rss​
可以理解为物理内存​
  • Windows:WorkingSetSize​
  • Mac:task_vm里面的phys_footprint​
剩余内存(MB)​
系统剩余物理内存​
  • Windows:GlobalMemoryStatusEx返回的ullAvailPhys​
  • Mac:host_vm.free_count - host_vm.speculative_count + host_vm.external_page_count + host_vm.purgeable_count​
总内存(MB)​
系统总物理内存​
  • Windows:GlobalMemoryStatusEx返回的ullTotalPhys​
  • Mac:sysctl返回的总内存​
内存使用率(%)​
进程物理内存/系统总物理内存​
-​
​
API​
​
#include "ParfaitWrapperBase.h"​
/**​
* 启动本进程cpu性能监控。如果win下需要监控其他进程,请使用带pid的方法​
* mac只能调用此方法,即只能监控本进程​
* @param config 性能监控config​
*/​
void StartMemoryMonitor(const PerformanceConfig& config);​
​
/**​
* 启动内存性能监控,mac调用此方法不生效​
* @param config 性能监控config​
* @param pid 进程pid。windows支持pid非本进程,mac调用此方法不生效​
* @param process_name pid所绑定的进程标识,也是slardar上所展示时使用的标识​
*/​
void ParfaitWrapperBase::StartMemoryMonitor(const PerformanceConfig& config,​
int pid, ​
const char* process_name);​
​
示例代码:​
// 开启本进程的CPU监控​
parfait::PerformanceConfig config = {10, 10, parfait::INTERVAL_30};​
parfait_wrapper_ptr->StartMemoryMonitor(config);​
​
步骤六:查询消费​
查询数据,请参见自定义看板。​
多进程接入性能监控​
Windows​
​
接入参数​
说明​
是否需要接入SDK​
否​
是否需要初始化SDK​
否​
接入方式​
主进程监控子进程的性能使用情况。​
上报时机​
主进程上报。​
上报参数​
主进程初始化SDK的参数。​
整体流程​
  1. 主进程初始化Parfait SDK。​
  1. 主进程开启Upload循环间隔上报。​
  1. 主进程获取子进程PID。​
  1. 主进程调用支持子进程性能监控的API,传入PID,监控子进程性能使用情况。​
  1. 主进程上报子进程性能监控数据。​
​
Mac​
​
接入参数​
说明​
是否需要接入SDK​
是​
是否需要初始化SDK​
是​
接入方式​
子进程自行监控自身性能。​
上报时机​
子进程上报自身数据。​
上报参数​
子进程初始化SDK的参数。​
整体流程​
  1. 子进程初始化Parfait SDK。​
  1. 子进程开启Upload循环间隔上报。​
  1. 子进程开启自身性能监控。​
  1. 子进程上报数据。​
​
​
最近更新时间:2026.10.15 20:24:46
这个页面对您有帮助吗?
有用
有用
无用
无用