2014-02-05 7 views
0

Я хочу проверить, как работает моя система, когда загрузка процессора приближается к 99%, а также использование памяти также около 99%.Как увеличить память и потребление процессора моей машиной?

Чтобы увеличить объем памяти и использование процессора в такой степени, я могу написать код на C++ или что-нибудь еще?

Моя машина Ubuntu Server 12.04 без GUI.

+2

http://manpages.ubuntu.com/manpages/lucid/man1/stress.1.html это? – user2485710

+0

Не нужно писать код, просто загрузите и запустите некоторые эталонные программы или стресс-тестеры. –

+0

или http://superuser.com/questions/443406/how-can-i-produce-high-cpu-load-on-a-linux-server – user2485710

ответ

0

Вот что вы можете сделать:

#include <array> 

const unsigned int BIG_SIZE = 50 * 1024 * 1024; 

int main() 
{ 
    std::array<char, BIG_SIZE> *m = new std::array<char, BIG_SIZE>; 



    std::fill(m->begin(),m->end(),0); 

    while(1) 
     ; 
} 

в то время как цикл с использованием 100% от одноядерного процессора.

Объект массива будет потреблять память. Вы должны прикоснуться к нему, иначе ОС не назначит вам эту память.

+1

Если вы не столкнулись с переполнением стека или цикл не оптимизирован, или у вас более одного процессора. –

+0

_'Контактный цикл с использованием 100% -ного процессора. '' Я в этом сомневаюсь! –

+0

Ваша петля однопоточная. – HAL9000

0

для CPU убийства я обычно делаю что-то вроде этого:

volatile int thread_run=0; 
volatile int thread_stop=0; 
DWORD __stdcall CPU_Kill_thread(LPVOID *p) 
{ 
thread_run++; 
for(;!thread_stop;) 
    { 
    } 
thread_run--; 
} 

void stop() // stop the threads before app exit 
{ 
for (thread_stop=1;thread_run;) Sleep(1); 
} 
  • запуска 1 потока для каждого процессора и установить их сродство к соответствующему CPU !!!

для памяти убийство:

  • внутри основной программы (или нити)

    1.size = 1 < < 20; = 1 Мбайт или любой другой

    2.allocate DAT = новый байт [размер]

    3.if (DAT == NULL) выделяют ить размер 2 размер/и остановить

    4.delete DAT; siz < < = 1; Гото 2

  • теперь просто сделать некоторые доступ к памяти по всей ДАТ []

  • не нужно, чтобы получить доступ все байты
  • вы можете сделать это для каждого 13-го байта или любой другой (должно быть нечетное число раз, чтобы быть обязательно)
Смежные вопросы