mem_watch_dog
简介
基于mem_record实现的内存监控
组件接口
mem_watch_dog.gs
| 函数原型 | 函数作用 |
|---|---|
| MemUsageWatchDog create_mem_watch_dog() | 创建一个 MemUsageWatchDog 实例,等效于 emUsageWatchDog.new() |
类
MemUsageWatchDog
内存使用情况监控
成员变量
| 变量名 | 类型 | 初始值 | 须初始化 | 描述 |
|---|---|---|---|---|
| m_strategy | WatchDogStrategy | nil | 可选 | 监控回调函数 |
| m_interval | float | 0.5 | 可选 | 监控间隔(单位:秒) |
| m_record_interval | float | 5 | 可选 | 记录间隔(单位:秒) |
| m_record_type | MemRecordType | "MemRecordType.LOG_RECORD" | 可选 | 内存记录类型(默认:MemRecordType.LOG_RECORD) |
| m_in_work_flag | bool | false | 可选 | 是不是处于工作状态 |
| m_log_file | file | nil | 可选 | 日志文件 |
成员方法
| 函数原型 | 函数作用 |
|---|
样例
import pkg.mem_watch_dog;
// 创建 MemUsageWatchDog
MemUsageWatchDog a = MemUsageWatchDog.new(
"/mem_watch_dog.log", // 参数1(默认为nil),内存记录文件,如果路径为nil则不输出到文件
parallel (MemUsageWatchDog dog, int now_memory_size){
if (now_memory_size >= 1 * 1024 * 1024 * 1024)
return true;
return false;
}, // 参数2(默认为nil),触发记录策略,应该是一个parallel函数,返回true则开始记录内存分配情况。为nil 则使用默认策略
0.5, // 参数3(默认为0.5),扫描间隔,单位为秒,WatchDog将会以此为间隔 ,调用给定的策略函数;
1.0, // 参数4(默认为1.0),记录时长,单位为秒,在记录触发后,WatchDog将记录接下来这段时间内的内存分配详情
MemRecordType.LOG_RECORD // 参数5(默认为MemRecordType.LOG_RECORD),记录类型,详见 http://gsdocs.g-bits.com:3000/#/Information/Gs_mem_report?id=%e7%ae%80%e4%bb%8b
);
// 不需要的时候,可以调用close关闭
a.close();