性能监控目前可以采集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端性能监控表现为:
说明
由于系统限制,Mac只能采集本进程的性能监控数据。Windows可以采集指定pid的性能监控数据。
指标名 | 采集方式 |
---|---|
进程CPU使用率(%) |
|
系统CPU使用率(%) |
|
#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 |
|
进程内存(MB) | 进程常驻内存大小,即process_rss |
|
剩余内存(MB) | 系统剩余物理内存 |
|
总内存(MB) | 系统总物理内存 |
|
内存使用率(%) | 进程物理内存/系统总物理内存 | - |
#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);
查询数据,请参见自定义看板。
接入参数 | 说明 |
---|---|
是否需要接入SDK | 否 |
是否需要初始化SDK | 否 |
接入方式 | 主进程监控子进程的性能使用情况。 |
上报时机 | 主进程上报。 |
上报参数 | 主进程初始化SDK的参数。 |
整体流程 |
|
接入参数 | 说明 |
---|---|
是否需要接入SDK | 是 |
是否需要初始化SDK | 是 |
接入方式 | 子进程自行监控自身性能。 |
上报时机 | 子进程上报自身数据。 |
上报参数 | 子进程初始化SDK的参数。 |
整体流程 |
|