|
|
| version 1.1, 2013/01/17 10:05:35 | version 1.5.78.1, 2024/04/15 09:50:57 |
|---|---|
| Line 1 | Line 1 |
| #include <stdio.h> | #include <stdio.h> |
| #include <string.h> | |
| #include <stdlib.h> | #include <stdlib.h> |
| #include <elwix.h> | #include <elwix.h> |
| Line 22 main(int argc, char **argv) | Line 23 main(int argc, char **argv) |
| mpool_t *mp; | mpool_t *mp; |
| void *addr; | void *addr; |
| int i; | int i; |
| u_long curr; | u_long curr, real; |
| printf("whether default memory mapper is elwix? %d\n", elwix_mm_inuse()); | |
| for (i = 0; i < 3; i++) { | for (i = 0; i < 3; i++) { |
| addr = malloc(4000); | addr = malloc(4000); |
| printf("addr=%p\n", addr); | printf("addr=%p\n", addr); |
| Line 36 main(int argc, char **argv) | Line 39 main(int argc, char **argv) |
| return 1; | return 1; |
| } | } |
| /* | /* |
| mpool_getquota(mp, &curr, NULL); | mpool_getquota(mp, &curr, NULL, NULL); |
| printf("___current=%lu\n", curr); | printf("___current=%lu\n", curr); |
| */ | */ |
| printf(">>> get 3 allocs\n"); | |
| for (i = 0; i < 3; i++) { | for (i = 0; i < 3; i++) { |
| addr = mpool_malloc(mp, 4000, "mdaaa 4000"); | addr = mpool_malloc(mp, 4000, "mdaaa 4000"); |
| if (!addr) { | if (!addr) { |
| Line 54 main(int argc, char **argv) | Line 58 main(int argc, char **argv) |
| // mpool_free(mp, addr, 0); | // mpool_free(mp, addr, 0); |
| } | } |
| mpool_getquota(mp, &curr, NULL); | mpool_getquota(mp, &curr, &real, NULL); |
| printf("___current=%lu\n", curr); | printf("___current=%lu ___real=%lu\n", curr, real); |
| printf("0) calls.act=%lu calls.inact=%lu calls.free=%lu; bytes.act=%lu bytes.inact=%lu bytes.free=%lu;\n", | printf("0) calls.act=%lu calls.inact=%lu calls.free=%lu; bytes.act=%lu bytes.inact=%lu bytes.free=%lu;\n", |
| mp->pool_calls.alloc, mp->pool_calls.cache, mp->pool_calls.free, | mp->pool_calls.alloc, mp->pool_calls.cache, mp->pool_calls.free, |
| mp->pool_bytes.alloc, mp->pool_bytes.cache, mp->pool_bytes.free); | mp->pool_bytes.alloc, mp->pool_bytes.cache, mp->pool_bytes.free); |
| mpool_statistics(mp, show); | mpool_statistics(mp, show, NULL, 0); |
| printf(">>> realloc 4000 to 5010 addr=%p\n", addr); | |
| addr = mpool_realloc(mp, addr, 5010, "|||||||||||||"); | addr = mpool_realloc(mp, addr, 5010, "|||||||||||||"); |
| if (!addr) | if (!addr) |
| printf("Error:: #%d - %s\n", elwix_GetErrno(), elwix_GetError()); | printf("Error:: #%d - %s\n", elwix_GetErrno(), elwix_GetError()); |
| mpool_getquota(mp, &curr, NULL); | mpool_getquota(mp, &curr, &real, NULL); |
| printf("addr=%p_current=%lu\n", addr, curr); | printf("addr=%p_current=%lu_real=%lu\n", addr, curr, real); |
| printf("1) calls.act=%lu calls.inact=%lu calls.free=%lu; bytes.act=%lu bytes.inact=%lu bytes.free=%lu;\n", | printf("1) calls.act=%lu calls.inact=%lu calls.free=%lu; bytes.act=%lu bytes.inact=%lu bytes.free=%lu;\n", |
| mp->pool_calls.alloc, mp->pool_calls.cache, mp->pool_calls.free, | mp->pool_calls.alloc, mp->pool_calls.cache, mp->pool_calls.free, |
| mp->pool_bytes.alloc, mp->pool_bytes.cache, mp->pool_bytes.free); | mp->pool_bytes.alloc, mp->pool_bytes.cache, mp->pool_bytes.free); |
| mpool_statistics(mp, show); | mpool_statistics(mp, show, NULL, 0); |
| printf(">>> free addr=%p\n", addr); | |
| if (addr) | if (addr) |
| mpool_free(mp, addr, 0); | mpool_free(mp, addr, 0); |
| printf("2) calls.act=%lu calls.inact=%lu calls.free=%lu; bytes.act=%lu bytes.inact=%lu bytes.free=%lu;\n", | printf("2) calls.act=%lu calls.inact=%lu calls.free=%lu; bytes.act=%lu bytes.inact=%lu bytes.free=%lu;\n", |
| mp->pool_calls.alloc, mp->pool_calls.cache, mp->pool_calls.free, | mp->pool_calls.alloc, mp->pool_calls.cache, mp->pool_calls.free, |
| mp->pool_bytes.alloc, mp->pool_bytes.cache, mp->pool_bytes.free); | mp->pool_bytes.alloc, mp->pool_bytes.cache, mp->pool_bytes.free); |
| mpool_statistics(mp, show); | mpool_statistics(mp, show, NULL, 0); |
| printf(">>> purge inactive memory\n"); | |
| mpool_purge(mp, 0); | mpool_purge(mp, 0); |
| mpool_getquota(mp, &curr, NULL); | mpool_getquota(mp, &curr, &real, NULL); |
| printf("___current=%lu\n", curr); | printf("___current=%lu ___real=%lu\n", curr, real); |
| printf("3) calls.act=%lu calls.inact=%lu calls.free=%lu; bytes.act=%lu bytes.inact=%lu bytes.free=%lu;\n", | printf("3) calls.act=%lu calls.inact=%lu calls.free=%lu; bytes.act=%lu bytes.inact=%lu bytes.free=%lu;\n", |
| mp->pool_calls.alloc, mp->pool_calls.cache, mp->pool_calls.free, | mp->pool_calls.alloc, mp->pool_calls.cache, mp->pool_calls.free, |
| mp->pool_bytes.alloc, mp->pool_bytes.cache, mp->pool_bytes.free); | mp->pool_bytes.alloc, mp->pool_bytes.cache, mp->pool_bytes.free); |
| mpool_statistics(mp, show); | mpool_statistics(mp, show, NULL, 0); |
| printf(">>> alloc new 4000\n"); | |
| addr = mpool_malloc(mp, 4000, "mdaaa 4000"); | addr = mpool_malloc(mp, 4000, "mdaaa 4000"); |
| if (!addr) { | if (!addr) { |
| printf("Error:: #%d - %s\n", elwix_GetErrno(), elwix_GetError()); | printf("Error:: #%d - %s\n", elwix_GetErrno(), elwix_GetError()); |
| Line 99 main(int argc, char **argv) | Line 107 main(int argc, char **argv) |
| return 2; | return 2; |
| } | } |
| printf("addr=%p chkaddr=%d addr_size=%d\n", addr, mpool_chkaddr(addr), mpool_getsizebyaddr(addr)); | printf("addr=%p chkaddr=%d addr_size=%d\n", addr, mpool_chkaddr(addr), mpool_getsizebyaddr(addr)); |
| printf(">>> and free new 4000 addr=%p\n", addr); | |
| mpool_free(mp, addr, 0); | mpool_free(mp, addr, 0); |
| printf("4) calls.act=%lu calls.inact=%lu calls.free=%lu; bytes.act=%lu bytes.inact=%lu bytes.free=%lu;\n", | printf("4) calls.act=%lu calls.inact=%lu calls.free=%lu; bytes.act=%lu bytes.inact=%lu bytes.free=%lu;\n", |
| mp->pool_calls.alloc, mp->pool_calls.cache, mp->pool_calls.free, | mp->pool_calls.alloc, mp->pool_calls.cache, mp->pool_calls.free, |
| mp->pool_bytes.alloc, mp->pool_bytes.cache, mp->pool_bytes.free); | mp->pool_bytes.alloc, mp->pool_bytes.cache, mp->pool_bytes.free); |
| mpool_statistics(mp, show); | mpool_statistics(mp, show, NULL, 0); |
| printf("realloc 4000 to 100000 and to 2000000\n"); | |
| addr = mpool_malloc(mp, 4000, "mdaaa 4000"); | |
| printf("malloc addr=%p chkaddr=%d addr_size=%d\n", addr, mpool_chkaddr(addr), mpool_getsizebyaddr(addr)); | |
| addr = mpool_realloc(mp, addr, 100000, "ohche"); | |
| printf("realloc addr=%p chkaddr=%d addr_size=%d\n", addr, mpool_chkaddr(addr), mpool_getsizebyaddr(addr)); | |
| addr = mpool_realloc(mp, addr, 2000000, NULL); | |
| printf("realloc addr=%p chkaddr=%d addr_size=%d\n", addr, mpool_chkaddr(addr), mpool_getsizebyaddr(addr)); | |
| mpool_free(mp, addr, 0); | |
| printf("5) calls.act=%lu calls.inact=%lu calls.free=%lu; bytes.act=%lu bytes.inact=%lu bytes.free=%lu;\n", | |
| mp->pool_calls.alloc, mp->pool_calls.cache, mp->pool_calls.free, | |
| mp->pool_bytes.alloc, mp->pool_bytes.cache, mp->pool_bytes.free); | |
| mpool_statistics(mp, show, NULL, 0); | |
| mpool_dump(mp, NULL); | |
| mpool_destroy(&mp); | mpool_destroy(&mp); |
| return 0; | return 0; |
| } | } |