Как вызвать фрагментацию памяти на встроенном устройстве на базе Linux?

аппаратные средства

РУКА

Что я пытаюсь сделать: Ответ: Я пытаюсь создать фрагментацию памяти на встроенном в swapless-устройстве под управлением Linux 2.6.31.

Почему: Ответ: Я пытаюсь перенести некоторые исправления в Linux 2.6.31, которые будут дефрагментировать фрагментированную память. Чтобы проверить правильность работы этих исправлений, я хотел бы сначала попытаться фрагментировать память.

Я узнал, что непрерывное выделение и освобождение памяти приложениями может привести к фрагментации. Поэтому я написал эти простые программы на C.

#include <stdio.h> #include <stdlib.h> int main(void) { srand(time(NULL)); int i = 0, j = 0, randnum=0; while(1) { randnum = rand()%10000000; double *ptr = (double*) malloc(sizeof(*ptr) * randnum); for(j = 0 ; j < randnum; j++) { *(ptr+j) = (double)j+1; } free(ptr); } } 

==========

 #include <stdio.h> #include <stdlib.h> int main(void) { srand(time(NULL)); int i = 0, j = 0, randnum=0; int arr[6] = { 3072, 7168, 15360 , 31744, 64512, 130048}; while(1) { for (i = 0; i < 6 ; i++) { int *ptr = (int*) malloc(arr[i] * 93); for(j = 0 ; j < arr[i] * 93 / sizeof(int); j++) { *(ptr+j) = j+1; } free(ptr); } } } 

Как измерить, если фрагментация памяти ?: Ответ: Я смотрю на o / p of /proc/buddyinfo

Что мне нужно:? Можете ли вы предложить лучший способ фрагментировать память? Потому что эти программы C работают очень медленно.

Linux и Unix - лучшая ОС в мире.