of(line),fp) != NULL) {
if (strncmp(line,field,flen) == 0) {
char *p = strchr(line,'k');
if (p) {
*p = '\0';
bytes += strtol(line+flen,NULL,10) * 1024;
}
}
}
fclose(fp);
return bytes;
}
#else
size_t zmalloc_get_smap_bytes_by_field(char *field) {
((void) field);
return 0;
}
#endif
//获取Private_Dirty大小,RSS=Shared_Clean+Shared_Dirty+Private_Clean+Private_Dirty
//Shared_Clean:引用大于1,未被修改
//Shared_Dirty:引用大于1,被修改
//Private_Clean:引用等于1,未被修改
//Private_Dirty:引用等于1,被修改
size_t zmalloc_get_private_dirty(void) {
return zmalloc_get_smap_bytes_by_field("Private_Dirty:");
}
|