| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- /* banchmark for memory */
- #include "BaseObj.h"
- #include "PikaStdLib_SysObj.h"
- #include "dataStrs.h"
- #include <stdio.h>
- void checker_printMem(char *info, uint32_t size)
- {
- printf("%s", info);
- if (size <= 1024)
- {
- printf("%d byte\r\n", size);
- return;
- }
- printf("%0.2f Kb\r\n", size / 1024.0);
- return;
- }
- void checker_printMemUsage(char *testName)
- {
- printf("---------------------------\r\n");
- printf("Testing :%s\r\n", testName);
- checker_printMem(" max = ", pikaMemMax());
- checker_printMem(" now = ", pikaMemNow());
- printf("---------------------------\r\n");
- }
- void checker_memInfo(void)
- {
- printf("---------------------------\r\n");
- printf("Memory pool info:\r\n");
- checker_printMem(" mem state size = ", sizeof(PikaMemInfo));
- printf("---------------------------\r\n");
- }
- void checker_assertMemFree()
- {
- if (0 == pikaMemNow())
- {
- pikaMemMaxReset();
- return;
- }
- printf("Error: Memory free error.\r\n");
- while (1)
- ;
- }
- void checker_objMemChecker(PikaObj *(*NewFun)(Args *), char *objName)
- {
- {
- /* new root object */
- PikaObj *obj = newRootObj("obj", NewFun);
- char testName[256] = {0};
- sprintf(testName, "Root %s object", objName);
- checker_printMemUsage(testName);
- obj_deinit(obj);
- checker_assertMemFree();
- }
- {
- PikaObj *obj = NewFun(NULL);
- char testName[256] = {0};
- sprintf(testName, "%s object", objName);
- checker_printMemUsage(testName);
- obj_deinit(obj);
- checker_assertMemFree();
- }
- }
- int32_t main()
- {
- checker_objMemChecker(New_TinyObj, "tiny");
- checker_objMemChecker(New_BaseObj, "base");
- checker_objMemChecker(New_PikaStdLib_SysObj, "sys");
- {
- Arg *arg = New_arg(NULL);
- checker_printMemUsage("void arg");
- arg_deinit(arg);
- checker_assertMemFree();
- }
- {
- Link *link = New_link(NULL);
- checker_printMemUsage("void link");
- link_deinit(link);
- checker_assertMemFree();
- }
- {
- Arg *arg = New_arg(NULL);
- arg = arg_setInt(arg, "testInt1", 0);
- checker_printMemUsage("int arg");
- arg_deinit(arg);
- checker_assertMemFree();
- }
- {
- Arg *arg = New_arg(NULL);
- arg = arg_setFloat(arg, "testFloat1", 0);
- checker_printMemUsage("float arg");
- arg_deinit(arg);
- checker_assertMemFree();
- }
- {
- Arg *arg = New_arg(NULL);
- arg = arg_setStr(arg, "testStr", "test string");
- checker_printMemUsage("str arg");
- arg_deinit(arg);
- checker_assertMemFree();
- }
- {
- Args *args = New_args(NULL);
- checker_printMemUsage("void args");
- args_deinit(args);
- checker_assertMemFree();
- }
- {
- Args *args = New_args(NULL);
- args_setInt(args, "testInt1", 0);
- checker_printMemUsage("one int args");
- args_deinit(args);
- checker_assertMemFree();
- }
- {
- Args *args = New_args(NULL);
- args_setInt(args, "testInt1", 0);
- args_setInt(args, "testInt2", 0);
- checker_printMemUsage("two int args");
- args_deinit(args);
- checker_assertMemFree();
- }
- {
- Args *args = New_args(NULL);
- args_setFloat(args, "testFloat", 0);
- checker_printMemUsage("one float args");
- args_deinit(args);
- checker_assertMemFree();
- }
- {
- Args *args = New_args(NULL);
- args_setFloat(args, "testFloat", 0);
- args_setFloat(args, "testFLoat", 0);
- checker_printMemUsage("two float args");
- args_deinit(args);
- checker_assertMemFree();
- }
- checker_memInfo();
- }
|