mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
restore becnchmark
This commit is contained in:
parent
18731fef65
commit
e288e09238
@ -37,11 +37,12 @@ static void while_loop_10000(benchmark::State& state) {
|
||||
}
|
||||
BENCHMARK(while_loop_10000)->Unit(benchmark::kMillisecond);
|
||||
|
||||
static void __prime_number_100_handler(void) {
|
||||
static void prime_number_100(benchmark::State& state) {
|
||||
int num = 0;
|
||||
PikaObj* pikaMain = newRootObj((char*)"pikaMain", New_PikaMain);
|
||||
/* run */
|
||||
obj_run(pikaMain, (char *)
|
||||
for (auto _ : state) {
|
||||
PikaObj* pikaMain = newRootObj((char*)"pikaMain", New_PikaMain);
|
||||
/* run */
|
||||
obj_run(pikaMain, (char *)
|
||||
"num = 0\n"
|
||||
"i = 2\n"
|
||||
"for i in range(2,100):\n"
|
||||
@ -54,51 +55,38 @@ static void __prime_number_100_handler(void) {
|
||||
" if is_prime:\n"
|
||||
" num = num + i\n"
|
||||
"\n");
|
||||
num = obj_getInt(pikaMain, (char*)"num");
|
||||
if (1060 != num) {
|
||||
printf("[error]: prime_number_100\r\n");
|
||||
}
|
||||
obj_deinit(pikaMain);
|
||||
}
|
||||
|
||||
static void __prime_number_100_c_handler(void) {
|
||||
int num = 0;
|
||||
/* run */
|
||||
for (int i = 2; i < 100; i++) {
|
||||
int is_prime = 1;
|
||||
for (int j = 2; j < i; j++) {
|
||||
if (i % j == 0) {
|
||||
is_prime = 0;
|
||||
break;
|
||||
}
|
||||
num = obj_getInt(pikaMain, (char*)"num");
|
||||
if (1060 != num) {
|
||||
printf("[error]: prime_number_100\r\n");
|
||||
}
|
||||
if (is_prime) {
|
||||
num = num + i;
|
||||
}
|
||||
}
|
||||
if (1060 != num) {
|
||||
printf("[error]: prime_number_100\r\n");
|
||||
obj_deinit(pikaMain);
|
||||
}
|
||||
}
|
||||
BENCHMARK(prime_number_100)->Unit(benchmark::kMillisecond);
|
||||
|
||||
static void prime_number_100(benchmark::State& state) {
|
||||
for (auto _ : state) {
|
||||
__prime_number_100_handler();
|
||||
state.PauseTiming();
|
||||
__prime_number_100_c_handler();
|
||||
state.ResumeTiming();
|
||||
}
|
||||
}
|
||||
BENCHMARK(prime_number_100)->Unit(benchmark::kMillisecond)->Iterations(20);
|
||||
|
||||
static void prime_number_100_c(benchmark::State& state) {
|
||||
int num = 0;
|
||||
for (auto _ : state) {
|
||||
state.PauseTiming();
|
||||
__prime_number_100_handler();
|
||||
state.ResumeTiming();
|
||||
__prime_number_100_c_handler();
|
||||
num = 0;
|
||||
/* run */
|
||||
for (int i = 2; i < 100; i++) {
|
||||
int is_prime = 1;
|
||||
for (int j = 2; j < i; j++) {
|
||||
if (i % j == 0) {
|
||||
is_prime = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (is_prime) {
|
||||
num = num + i;
|
||||
}
|
||||
}
|
||||
if (1060 != num) {
|
||||
printf("[error]: prime_number_100\r\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
BENCHMARK(prime_number_100_c)->Unit(benchmark::kMillisecond)->Iterations(20);
|
||||
BENCHMARK(prime_number_100_c)->Unit(benchmark::kMillisecond);
|
||||
|
||||
BENCHMARK_MAIN();
|
@ -16,14 +16,11 @@ for i in range(len(benchmarks_data)):
|
||||
benchmarks_data[i]['real_time'] *= cali_ratio
|
||||
benchmarks_data[i]['family_index'] += 1
|
||||
|
||||
# manel cali rate
|
||||
manul_cali_rate = 1/1.6
|
||||
|
||||
# new a banchmark
|
||||
benchmarks_data.insert(0, benchmarks_data[0].copy())
|
||||
performance_point_name = 'Performance Points'
|
||||
performance_point_res = benchmarks_data[-1]['cpu_time'] / \
|
||||
benchmarks_data[-2]['cpu_time'] * 100 * 100000 * manul_cali_rate
|
||||
benchmarks_data[-2]['cpu_time'] * 100 * 100000
|
||||
benchmarks_data[0]['name'] = performance_point_name
|
||||
benchmarks_data[0]['run_name'] = performance_point_name
|
||||
benchmarks_data[0]['family_index'] = 0
|
||||
|
Loading…
x
Reference in New Issue
Block a user