add benchmark for for_print_1k

This commit is contained in:
pikastech 2022-10-09 00:05:48 +08:00
parent 3a7e5a90e9
commit c660f400ac

View File

@ -41,6 +41,27 @@ static void while_loop_10000(benchmark::State& state) {
} }
BENCHMARK(while_loop_10000)->Unit(benchmark::kMillisecond); BENCHMARK(while_loop_10000)->Unit(benchmark::kMillisecond);
void __platform_printf(char* fmt, ...) {}
static void for_print_1000(benchmark::State& state) {
Args* buffs = New_strBuff();
char* pikaAsm = Parser_linesToAsm(buffs, (char*)
"for i in range(1000):\n"
" print(i)\n"
"\n");
ByteCodeFrame bytecode_frame;
byteCodeFrame_init(&bytecode_frame);
byteCodeFrame_appendFromAsm(&bytecode_frame, pikaAsm);
for (auto _ : state) {
PikaObj* pikaMain = newRootObj((char*)"pikaMain", New_PikaMain);
/* run */
pikaVM_runByteCodeFrame(pikaMain, &bytecode_frame);
obj_deinit(pikaMain);
}
byteCodeFrame_deinit(&bytecode_frame);
args_deinit(buffs);
}
BENCHMARK(for_print_1000)->Unit(benchmark::kMillisecond);
static void prime_number_100(benchmark::State& state) { static void prime_number_100(benchmark::State& state) {
int num = 0; int num = 0;
Args* buffs = New_strBuff(); Args* buffs = New_strBuff();
@ -101,4 +122,5 @@ static void prime_number_100_c(benchmark::State& state) {
} }
BENCHMARK(prime_number_100_c)->Unit(benchmark::kMillisecond); BENCHMARK(prime_number_100_c)->Unit(benchmark::kMillisecond);
BENCHMARK_MAIN(); BENCHMARK_MAIN();