小编pdp*_*pdp的帖子

内存泄漏检测中应使用哪个vsize,size和rss?

这三个值,的VSIZE大小RSSps输出是适合于在快速存储器泄漏检测用?就我的目的而言,如果一个进程已经运行了几天并且其内存一直在增加,那么这足以表明它正在泄漏内存。我知道最终应使用像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)

c memory size rss

4
推荐指数
1
解决办法
2603
查看次数

标签 统计

c ×1

memory ×1

rss ×1

size ×1