main.c 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. /* banchmark for memory */
  2. #include "BaseObj.h"
  3. #include "PikaStdLib_SysObj.h"
  4. #include "dataStrs.h"
  5. #include <stdio.h>
  6. void checker_printMem(char *info, uint32_t size)
  7. {
  8. printf("%s", info);
  9. if (size <= 1024)
  10. {
  11. printf("%d byte\r\n", size);
  12. return;
  13. }
  14. printf("%0.2f Kb\r\n", size / 1024.0);
  15. return;
  16. }
  17. void checker_printMemUsage(char *testName)
  18. {
  19. printf("---------------------------\r\n");
  20. printf("Testing :%s\r\n", testName);
  21. checker_printMem(" max = ", pikaMemMax());
  22. checker_printMem(" now = ", pikaMemNow());
  23. printf("---------------------------\r\n");
  24. }
  25. void checker_memInfo(void)
  26. {
  27. printf("---------------------------\r\n");
  28. printf("Memory pool info:\r\n");
  29. checker_printMem(" mem state size = ", sizeof(PikaMemInfo));
  30. printf("---------------------------\r\n");
  31. }
  32. void checker_assertMemFree()
  33. {
  34. if (0 == pikaMemNow())
  35. {
  36. pikaMemMaxReset();
  37. return;
  38. }
  39. printf("Error: Memory free error.\r\n");
  40. while (1)
  41. ;
  42. }
  43. void checker_objMemChecker(PikaObj *(*NewFun)(Args *), char *objName)
  44. {
  45. {
  46. /* new root object */
  47. PikaObj *obj = newRootObj("obj", NewFun);
  48. char testName[256] = {0};
  49. sprintf(testName, "Root %s object", objName);
  50. checker_printMemUsage(testName);
  51. obj_deinit(obj);
  52. checker_assertMemFree();
  53. }
  54. {
  55. PikaObj *obj = NewFun(NULL);
  56. char testName[256] = {0};
  57. sprintf(testName, "%s object", objName);
  58. checker_printMemUsage(testName);
  59. obj_deinit(obj);
  60. checker_assertMemFree();
  61. }
  62. }
  63. int32_t main()
  64. {
  65. checker_objMemChecker(New_TinyObj, "tiny");
  66. checker_objMemChecker(New_BaseObj, "base");
  67. checker_objMemChecker(New_PikaStdLib_SysObj, "sys");
  68. {
  69. Arg *arg = New_arg(NULL);
  70. checker_printMemUsage("void arg");
  71. arg_deinit(arg);
  72. checker_assertMemFree();
  73. }
  74. {
  75. Link *link = New_link(NULL);
  76. checker_printMemUsage("void link");
  77. link_deinit(link);
  78. checker_assertMemFree();
  79. }
  80. {
  81. Arg *arg = New_arg(NULL);
  82. arg = arg_setInt(arg, "testInt1", 0);
  83. checker_printMemUsage("int arg");
  84. arg_deinit(arg);
  85. checker_assertMemFree();
  86. }
  87. {
  88. Arg *arg = New_arg(NULL);
  89. arg = arg_setFloat(arg, "testFloat1", 0);
  90. checker_printMemUsage("float arg");
  91. arg_deinit(arg);
  92. checker_assertMemFree();
  93. }
  94. {
  95. Arg *arg = New_arg(NULL);
  96. arg = arg_setStr(arg, "testStr", "test string");
  97. checker_printMemUsage("str arg");
  98. arg_deinit(arg);
  99. checker_assertMemFree();
  100. }
  101. {
  102. Args *args = New_args(NULL);
  103. checker_printMemUsage("void args");
  104. args_deinit(args);
  105. checker_assertMemFree();
  106. }
  107. {
  108. Args *args = New_args(NULL);
  109. args_setInt(args, "testInt1", 0);
  110. checker_printMemUsage("one int args");
  111. args_deinit(args);
  112. checker_assertMemFree();
  113. }
  114. {
  115. Args *args = New_args(NULL);
  116. args_setInt(args, "testInt1", 0);
  117. args_setInt(args, "testInt2", 0);
  118. checker_printMemUsage("two int args");
  119. args_deinit(args);
  120. checker_assertMemFree();
  121. }
  122. {
  123. Args *args = New_args(NULL);
  124. args_setFloat(args, "testFloat", 0);
  125. checker_printMemUsage("one float args");
  126. args_deinit(args);
  127. checker_assertMemFree();
  128. }
  129. {
  130. Args *args = New_args(NULL);
  131. args_setFloat(args, "testFloat", 0);
  132. args_setFloat(args, "testFLoat", 0);
  133. checker_printMemUsage("two float args");
  134. args_deinit(args);
  135. checker_assertMemFree();
  136. }
  137. checker_memInfo();
  138. }