這應該填充我的記憶每一秒約100 MB。我使用gnome-systemmonitor和htop跟蹤memoryusage。但不知何故,它不。爲什麼?新的不分配內存
#include "unistd.h"
#include <iostream>
int main(int argc, char *argv[])
{
while (true){
std::cout << "New one" << std::endl;
new char[100000000];
sleep(1);
}
return 0;
}
運行:
g++ -std=c++11 -O0 main.cpp; ./a.out
懶惰的分配,最有可能的。嘗試寫入分配數組的東西。 –
我原本以爲它與[this](http://stackoverflow.com/q/25668420/1708801)相關,但它似乎甚至與'5.1' gcc並沒有做新的相同的優化,鐺和[godbolt顯示海灣合作委員會確實呼籲新](http://goo.gl/zXaTlQ)...所以保羅很可能是正確的...另一方面,鏗鏘會優化呼籲新的'-O1'和更大。 –
您已經評價過100MB將是char [104857600]?我想這個新的命令會被優化,因爲它沒有理由在那裏...... – Nidhoegger