main.c 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #include "PikaMain.h"
  2. #include "PikaParser.h"
  3. #include "PikaStdLib_MemChecker.h"
  4. #include "PikaVM.h"
  5. #include "dataArgs.h"
  6. #include "dataMemory.h"
  7. #include "dataStrs.h"
  8. #include "pikaScript.h"
  9. #include <time.h>
  10. #ifndef __platform_printf
  11. void __platform_printf(char* format, ...) {
  12. }
  13. #endif
  14. int main(void) {
  15. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  16. extern unsigned char pikaModules_py_a[];
  17. obj_linkLibrary(pikaMain, pikaModules_py_a);
  18. /* run */
  19. __platform_printf("BEGIN\r\n");
  20. /* clang-format off */
  21. clock_t start = clock();
  22. pikaVM_run(pikaMain,
  23. "for i in range(500000):\n"
  24. " print(i)"
  25. );
  26. clock_t end = clock();
  27. /* deinit */
  28. obj_deinit(pikaMain);
  29. #if PIKA_ARG_CACHE_ENABLE
  30. extern PikaMemInfo g_PikaMemInfo;
  31. printf("[ Info]: alloc times: %d, cached times: %d (%0.2f%%)\r\n",
  32. g_PikaMemInfo.alloc_times, g_PikaMemInfo.alloc_times_cache,
  33. ((float)g_PikaMemInfo.alloc_times_cache /
  34. (float)g_PikaMemInfo.alloc_times) *
  35. 100.0);
  36. #endif
  37. printf("[ Info]: time elapsed: %lfs\r\n",
  38. ((double)end - (double)start) / (double)CLOCKS_PER_SEC);
  39. return 0;
  40. }