以编程方式释放 libstagrab 中的内存
Programmatically deallocate memory in libstagrab
我们何时以及如何在使用 libstatgrab
时释放内存。我没有看到任何像 sg_free
这样的函数调用会释放用于存储系统统计信息的内存对象。例如:
sg_init(1);
sg_drop_privileges()
sg_load_stats *load_stat;
while(load_stat = sg_get_load_stats(NULL) != NULL) {
cout << load_stat->min1 << load_stat->min5 << load_stat->min15);
}
上面的while循环不断调用sg_get_load_stats
函数来获取cpu负载。它是使用内部缓冲区还是每次调用时都创建一个新缓冲区?如果后者为真,我们不应该释放该对象吗?谢谢
The Documentation 似乎表明 sg_get_load_stats() 具有本地作用域并由 libstatgrab 库处理。
sg_get_load_stats_r(),大概用于 return 当前范围之外的统计值,动态分配,结果缓冲区需要由用户清理。
我们何时以及如何在使用 libstatgrab
时释放内存。我没有看到任何像 sg_free
这样的函数调用会释放用于存储系统统计信息的内存对象。例如:
sg_init(1);
sg_drop_privileges()
sg_load_stats *load_stat;
while(load_stat = sg_get_load_stats(NULL) != NULL) {
cout << load_stat->min1 << load_stat->min5 << load_stat->min15);
}
上面的while循环不断调用sg_get_load_stats
函数来获取cpu负载。它是使用内部缓冲区还是每次调用时都创建一个新缓冲区?如果后者为真,我们不应该释放该对象吗?谢谢
The Documentation 似乎表明 sg_get_load_stats() 具有本地作用域并由 libstatgrab 库处理。
sg_get_load_stats_r(),大概用于 return 当前范围之外的统计值,动态分配,结果缓冲区需要由用户清理。