Annotation of libelwix/example/test_mem.c, revision 1.4
1.1 misho 1: #include <stdio.h>
1.2 misho 2: #include <string.h>
1.1 misho 3: #include <stdlib.h>
4: #include <elwix.h>
5:
6:
7: void show(u_int size, u_int act, u_int inact)
8: {
9: if (!act && !inact)
10: return;
11:
12: if (size < 1024)
13: printf("Statistics:: BUCKET %uB size, %u active, %u inactive\n", size, act, inact);
14: else if (size < 1024 * 1024)
15: printf("Statistics:: BUCKET %uKB size, %u active, %u inactive\n", size / 1024, act, inact);
16: else
17: printf("Statistics:: BUCKET %uMB size, %u active, %u inactive\n", size / (1024 * 1024), act, inact);
18: }
19:
20: int
21: main(int argc, char **argv)
22: {
23: mpool_t *mp;
24: void *addr;
25: int i;
1.4 ! misho 26: u_long curr, real;
1.1 misho 27:
1.3 misho 28: printf("whether default memory mapper is elwix? %d\n", elwix_mm_inuse());
29:
1.1 misho 30: for (i = 0; i < 3; i++) {
31: addr = malloc(4000);
32: printf("addr=%p\n", addr);
33: free(addr);
34: }
35:
36: mp = mpool_init(0);
37: if (!mp) {
38: printf("Error:: #%d - %s\n", elwix_GetErrno(), elwix_GetError());
39: return 1;
40: }
41: /*
1.4 ! misho 42: mpool_getquota(mp, &curr, NULL, NULL);
1.1 misho 43: printf("___current=%lu\n", curr);
44: */
45:
46: for (i = 0; i < 3; i++) {
47: addr = mpool_malloc(mp, 4000, "mdaaa 4000");
48: if (!addr) {
49: printf("Error:: #%d - %s\n", elwix_GetErrno(), elwix_GetError());
50: mpool_destroy(&mp);
51: return 2;
52: }
53: printf("addr=%p chkaddr=%d addr_size=%d\n", addr, mpool_chkaddr(addr), mpool_getsizebyaddr(addr));
54:
55: strlcpy(addr, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\ndddddd\n",
56: mpool_getsizebyaddr(addr));
57: // mpool_free(mp, addr, 0);
58: }
59:
1.4 ! misho 60: mpool_getquota(mp, &curr, &real, NULL);
! 61: printf("___current=%lu ___real=%lu\n", curr, real);
1.1 misho 62:
63: printf("0) calls.act=%lu calls.inact=%lu calls.free=%lu; bytes.act=%lu bytes.inact=%lu bytes.free=%lu;\n",
64: mp->pool_calls.alloc, mp->pool_calls.cache, mp->pool_calls.free,
65: mp->pool_bytes.alloc, mp->pool_bytes.cache, mp->pool_bytes.free);
66: mpool_statistics(mp, show);
67:
68: addr = mpool_realloc(mp, addr, 5010, "|||||||||||||");
69: if (!addr)
70: printf("Error:: #%d - %s\n", elwix_GetErrno(), elwix_GetError());
1.4 ! misho 71: mpool_getquota(mp, &curr, &real, NULL);
! 72: printf("addr=%p_current=%lu_real=%lu\n", addr, curr, real);
1.1 misho 73:
74: printf("1) calls.act=%lu calls.inact=%lu calls.free=%lu; bytes.act=%lu bytes.inact=%lu bytes.free=%lu;\n",
75: mp->pool_calls.alloc, mp->pool_calls.cache, mp->pool_calls.free,
76: mp->pool_bytes.alloc, mp->pool_bytes.cache, mp->pool_bytes.free);
77: mpool_statistics(mp, show);
78:
79:
80: if (addr)
81: mpool_free(mp, addr, 0);
82:
83: printf("2) calls.act=%lu calls.inact=%lu calls.free=%lu; bytes.act=%lu bytes.inact=%lu bytes.free=%lu;\n",
84: mp->pool_calls.alloc, mp->pool_calls.cache, mp->pool_calls.free,
85: mp->pool_bytes.alloc, mp->pool_bytes.cache, mp->pool_bytes.free);
86: mpool_statistics(mp, show);
87:
88: mpool_purge(mp, 0);
89:
1.4 ! misho 90: mpool_getquota(mp, &curr, &real, NULL);
! 91: printf("___current=%lu ___real=%lu\n", curr, real);
1.1 misho 92:
93: printf("3) calls.act=%lu calls.inact=%lu calls.free=%lu; bytes.act=%lu bytes.inact=%lu bytes.free=%lu;\n",
94: mp->pool_calls.alloc, mp->pool_calls.cache, mp->pool_calls.free,
95: mp->pool_bytes.alloc, mp->pool_bytes.cache, mp->pool_bytes.free);
96: mpool_statistics(mp, show);
97:
98: addr = mpool_malloc(mp, 4000, "mdaaa 4000");
99: if (!addr) {
100: printf("Error:: #%d - %s\n", elwix_GetErrno(), elwix_GetError());
101: mpool_destroy(&mp);
102: return 2;
103: }
104: printf("addr=%p chkaddr=%d addr_size=%d\n", addr, mpool_chkaddr(addr), mpool_getsizebyaddr(addr));
105: mpool_free(mp, addr, 0);
106:
107: printf("4) calls.act=%lu calls.inact=%lu calls.free=%lu; bytes.act=%lu bytes.inact=%lu bytes.free=%lu;\n",
108: mp->pool_calls.alloc, mp->pool_calls.cache, mp->pool_calls.free,
109: mp->pool_bytes.alloc, mp->pool_bytes.cache, mp->pool_bytes.free);
110: mpool_statistics(mp, show);
111: mpool_destroy(&mp);
112: return 0;
113: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>