mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-02-05 17:28:23 +08:00
use bytecode in benchmark
This commit is contained in:
parent
9be5ac4b88
commit
34078825f8
@ -16,7 +16,7 @@ static void for_loop_10000(benchmark::State& state) {
|
|||||||
for (auto _ : state) {
|
for (auto _ : state) {
|
||||||
PikaObj* pikaMain = newRootObj((char*)"pikaMain", New_PikaMain);
|
PikaObj* pikaMain = newRootObj((char*)"pikaMain", New_PikaMain);
|
||||||
/* run */
|
/* run */
|
||||||
obj_run(pikaMain, (char *)
|
pikaVM_run_enableByteCode(pikaMain, (char *)
|
||||||
"a = 0\n"
|
"a = 0\n"
|
||||||
"for i in range(0, 10000):\n"
|
"for i in range(0, 10000):\n"
|
||||||
" a = a + 1\n"
|
" a = a + 1\n"
|
||||||
@ -30,7 +30,7 @@ static void while_loop_10000(benchmark::State& state) {
|
|||||||
for (auto _ : state) {
|
for (auto _ : state) {
|
||||||
PikaObj* pikaMain = newRootObj((char*)"pikaMain", New_PikaMain);
|
PikaObj* pikaMain = newRootObj((char*)"pikaMain", New_PikaMain);
|
||||||
/* run */
|
/* run */
|
||||||
obj_run(pikaMain, (char *)
|
pikaVM_run_enableByteCode(pikaMain, (char *)
|
||||||
"i = 0\n"
|
"i = 0\n"
|
||||||
"while i < 10000:\n"
|
"while i < 10000:\n"
|
||||||
" i = i + 1\n"
|
" i = i + 1\n"
|
||||||
@ -56,16 +56,20 @@ static void prime_number_100(benchmark::State& state) {
|
|||||||
" if is_prime:\n"
|
" if is_prime:\n"
|
||||||
" num = num + i\n"
|
" num = num + i\n"
|
||||||
"\n");
|
"\n");
|
||||||
|
ByteCodeFrame bytecode_frame;
|
||||||
|
byteCodeFrame_init(&bytecode_frame);
|
||||||
|
byteCodeFrame_appendFromAsm(&bytecode_frame, pikaAsm);
|
||||||
for (auto _ : state) {
|
for (auto _ : state) {
|
||||||
PikaObj* pikaMain = newRootObj((char*)"pikaMain", New_PikaMain);
|
PikaObj* pikaMain = newRootObj((char*)"pikaMain", New_PikaMain);
|
||||||
/* run */
|
/* run */
|
||||||
pikaVM_runAsm(pikaMain, pikaAsm);
|
pikaVM_runByteCodeFrame(pikaMain, &bytecode_frame);
|
||||||
num = obj_getInt(pikaMain, (char*)"num");
|
num = obj_getInt(pikaMain, (char*)"num");
|
||||||
if (1060 != num) {
|
if (1060 != num) {
|
||||||
printf("[error]: prime_number_100\r\n");
|
printf("[error]: prime_number_100\r\n");
|
||||||
}
|
}
|
||||||
obj_deinit(pikaMain);
|
obj_deinit(pikaMain);
|
||||||
}
|
}
|
||||||
|
byteCodeFrame_deinit(&bytecode_frame);
|
||||||
args_deinit(buffs);
|
args_deinit(buffs);
|
||||||
}
|
}
|
||||||
BENCHMARK(prime_number_100)->Unit(benchmark::kMillisecond);
|
BENCHMARK(prime_number_100)->Unit(benchmark::kMillisecond);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user