zephyr/tests/benchmarks/sys_kernel/src/malloc.c
Nicolas Pitre ea7a969204 tests: benchmarks: sys_kernel: add k_malloc() test
Useful to evaluate malloc performance changes.

Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
2025-04-01 22:13:04 +02:00

60 lines
1007 B
C

/*
* Copyright (c) 2025 BayLibre SAS
* *
* SPDX-License-Identifier: Apache-2.0
*/
#include "syskernel.h"
static void *malloc_array[NUMBER_OF_LOOPS];
static void do_malloc(int loops)
{
int i;
for (i = 0; i < loops; i++) {
malloc_array[i] = k_malloc(1);
}
}
static void do_free(int loops)
{
int i;
for (i = 0; i < loops; i++) {
k_free(malloc_array[i]);
}
}
int malloc_test(void)
{
uint32_t t;
int return_value = 0;
fprintf(output_file, sz_test_case_fmt,
"malloc #1");
fprintf(output_file, sz_description,
"\n\tk_malloc");
printf(sz_test_start_fmt);
t = BENCH_START();
do_malloc(number_of_loops);
t = TIME_STAMP_DELTA_GET(t);
return_value += check_result(number_of_loops, t);
fprintf(output_file, sz_test_case_fmt,
"malloc #2");
fprintf(output_file, sz_description,
"\n\tk_free");
printf(sz_test_start_fmt);
t = BENCH_START();
do_free(number_of_loops);
t = TIME_STAMP_DELTA_GET(t);
return_value += check_result(number_of_loops, t);
return return_value;
}