add perfomence code

This commit is contained in:
pikastech 2022-10-09 14:18:26 +08:00
parent 3f9195f89d
commit 911c9bb994
2 changed files with 50 additions and 0 deletions

View File

@ -0,0 +1,13 @@
set(BINARY ${CMAKE_PROJECT_NAME}_performance)
file(GLOB_RECURSE PERFORMANCE_SOURCES LIST_DIRECTORIES false *.h *.cpp *.c)
set(SOURCES ${PERFORMANCE_SOURCES})
add_executable(${BINARY} ${PERFORMANCE_SOURCES})
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pg")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pg")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg")
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -pg")
# srclibgtest
target_link_libraries(${BINARY} PUBLIC
-Wl,--whole-archive ${CMAKE_PROJECT_NAME}-core -Wl,--no-whole-archive)

View File

@ -0,0 +1,37 @@
#include "PikaMain.h"
#include "PikaParser.h"
#include "PikaStdLib_MemChecker.h"
#include "PikaVM.h"
#include "dataArgs.h"
#include "dataMemory.h"
#include "dataStrs.h"
#include "pikaScript.h"
#include <time.h>
int main(void) {
PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
extern unsigned char pikaModules_py_a[];
obj_linkLibrary(pikaMain, pikaModules_py_a);
/* run */
__platform_printf("BEGIN\r\n");
/* clang-format off */
clock_t start = clock();
pikaVM_run(pikaMain,
"for i in range(100000):\n"
" print(i)"
);
clock_t end = clock();
/* deinit */
obj_deinit(pikaMain);
#if PIKA_ARG_CACHE_ENABLE
extern PikaMemInfo pikaMemInfo;
printf("[ Info]: alloc times: %d, cached times: %d (%0.2f%%)\r\n",
pikaMemInfo.alloc_times, pikaMemInfo.alloc_times_cache,
((float)pikaMemInfo.alloc_times_cache /
(float)pikaMemInfo.alloc_times) *
100.0);
#endif
printf("[ Info]: time elapsed: %lfs\r\n",
((double)end - (double)start) / (double)CLOCKS_PER_SEC);
return 0;
}