1

在redis源中我找到了“Rss Information”,但我不知道这是什么。

如果我使用带有查询字符串“文件 rss 信息”的 Google 搜索,我得到的唯一结果就像“RSS xml 提要”。

这是在源代码中定义的:

size_t zmalloc_get_rss(void) {
   int page = sysconf(_SC_PAGESIZE);
   size_t rss;
   char buf[4096];
   char filename[256];
   int fd, count;
   char *p, *x;

   snprintf(filename,256,"/proc/%d/stat",getpid());
   if ((fd = open(filename,O_RDONLY)) == -1) return 0;
   if (read(fd,buf,4096) <= 0) {
       close(fd);
       return 0;
   }
   close(fd);

   p = buf;
   count = 23; /* RSS is the 24th field in /proc/<pid>/stat */
   while(p && count--) {
       p = strchr(p,' ');
       if (p) p++;
   }
   if (!p) return 0;
   x = strchr(p,' ');
   if (!x) return 0;
   *x = '\0';

   rss = strtoll(p,NULL,10);
   rss *= page;
   return rss;
}

这会获得进程内存吗?我只能猜测。

4

1 回答 1

1

是的,RSS 的意思是“驻留集大小”。

请参阅proc 的手册页

驻留集大小:进程在实际内存中的页数。这只是计入文本、数据或堆栈空间的页面。这不包括尚未按需加载或已换出的页面。

于 2012-09-03T15:24:18.557 回答