Technology
 

ผู้ใช้:Ans/malloc

จาก Lug

  • malloc.c
#include <stdlib.h>
 
#define N 10000
int main() {
   char* a[N]; char* b; int i;
   system("ps u -C a.out; free");
   b = malloc(1024);
   for (i = 0; i < N; ++i) {
      a[i] = malloc(1024);
   }
   //b = malloc(1024);
   system("ps u -C a.out; free");
   for (i = 0; i < N; ++i) {
      free(a[i]);
   //system("ps u -C a.out");
   }
   system("ps u -C a.out; free");
   free(b);
   system("ps u -C a.out; free");
   return 0;
}
$ gcc ~/malloc.c ; ./a.out
USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
sysadmin  9616  0.0  0.0  1360  252 pts/0    S+   16:53   0:00 ./a.out
             total       used       free     shared    buffers     cached
Mem:        906736     891580      15156          0      18908      79488
-/+ buffers/cache:     793184     113552
Swap:      1022252     257740     764512
USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
sysadmin  9616  0.0  1.1 11524 10412 pts/0   R+   16:53   0:00 ./a.out
             total       used       free     shared    buffers     cached
Mem:        906736     901668       5068          0      18908      79488
-/+ buffers/cache:     803272     103464
Swap:      1022252     257740     764512
USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
sysadmin  9616  0.0  0.0  1492  464 pts/0    R+   16:53   0:00 ./a.out
             total       used       free     shared    buffers     cached
Mem:        906736     891776      14960          0      18908      79488
-/+ buffers/cache:     793380     113356
Swap:      1022252     257740     764512
USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
sysadmin  9616  0.0  0.0  1492  464 pts/0    R+   16:53   0:00 ./a.out
             total       used       free     shared    buffers     cached
Mem:        906736     891776      14960          0      18908      79488
-/+ buffers/cache:     793380     113356
Swap:      1022252     257740     764512
#include <stdlib.h>
 
#define N 10000
int main() {
   char* a[N]; char* b; int i;
   system("ps u -C a.out; free");
   //b = malloc(1024);
   for (i = 0; i < N; ++i) {
      a[i] = malloc(1024);
   }
   b = malloc(1024);
   system("ps u -C a.out; free");
   for (i = 0; i < N; ++i) {
      free(a[i]);
   //system("ps u -C a.out");
   }
   system("ps u -C a.out; free");
   free(b);
   system("ps u -C a.out; free");
   return 0;
}
$ gcc ~/malloc.c ; ./a.out
USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
sysadmin  9598  0.0  0.0  1360  252 pts/0    S+   16:52   0:00 ./a.out
             total       used       free     shared    buffers     cached
Mem:        906736     891580      15156          0      18880      79488
-/+ buffers/cache:     793212     113524
Swap:      1022252     257740     764512
USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
sysadmin  9598  0.0  1.1 11524 10412 pts/0   R+   16:52   0:00 ./a.out
             total       used       free     shared    buffers     cached
Mem:        906736     901652       5084          0      18880      79488
-/+ buffers/cache:     803284     103452
Swap:      1022252     257740     764512
USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
sysadmin  9598  0.0  1.1 11524 10412 pts/0   R+   16:52   0:00 ./a.out
             total       used       free     shared    buffers     cached
Mem:        906736     901652       5084          0      18880      79488
-/+ buffers/cache:     803284     103452
Swap:      1022252     257740     764512
USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
sysadmin  9598  0.0  0.0  1492  464 pts/0    R+   16:52   0:00 ./a.out
             total       used       free     shared    buffers     cached
Mem:        906736     891716      15020          0      18880      79488
-/+ buffers/cache:     793348     113388
Swap:      1022252     257740     764512