有应用程序给Linux提供免费内存吗?

时间:2015-08-23 18:36:28

标签: c++ linux

在我的VM(2gb)中运行此代码我在A点和B点消耗了大约40%的ram。在C点,无论我使用shrink_to_fit还是myresize内存,跳转到ram的79%。在C点,我想给操作系统带回一些内存。我最担心的是79%(而不是40%)我可以运行应用程序并让linux终止这个应用程序以使用太多内存。

如何将可用内存回馈给linux OS?

#include <cstdio>
#include <deque>
#include <unistd.h>
using namespace std;

typedef unsigned int u32;
typedef unsigned long long u64;

void myresize(deque<u64>&a) {
    a.shrink_to_fit(); return;
    deque<u64> b;
    for(auto i = a.begin(); i!=a.end(); ++i){
        b.push_back(*i);
    }
    a.swap(b);
}

int main(int argc, char **argv) {
    deque<u64> a;
    for(int i=0; i<100000000; ++i)
        a.push_back(i);

    printf("A\n");
    sleep(2);
    for(int i=0; i<100000; ++i)
        a.erase(a.begin()+i*3);
    printf("B\n");
    sleep(2);
    myresize(a);
    printf("C\n");
    sleep(5);
    return 0;
}

0 个答案:

没有答案