这三个值,的VSIZE,大小和RSS从ps输出是适合于在快速存储器泄漏检测用?就我的目的而言,如果一个进程已经运行了几天并且其内存一直在增加,那么这足以表明它正在泄漏内存。我知道最终应使用像valgrind这样的工具,但是它的使用具有侵入性,因此并不总是可取的。
就我的理解而言,我编写了一段简单的C代码,基本上分配了1 MiB的内存,将其释放,然后再次分配1 MiB。它还会在每步之前休眠10秒钟,这使我有时间查看的输出ps -p <pid> -ovsize=,size=,rss=。这里是:
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <stdint.h>
#define info(args...) printf(args)
char* bytes(char* str, uint32_t size, uint32_t n)
{
char* unit = "B";
if (n > 1000) {
n /= 1000;
unit = "KB";
}
if (n > 1000) {
n /= 1000;
unit = "MB";
}
snprintf(str, size, "%u %s", n, unit);
return(str);
}
void* xmalloc(size_t size)
{
char msg[64]; …Run Code Online (Sandbox Code Playgroud)