Useful to evaluate malloc performance changes. Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
60 lines
1007 B
C
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;
|
|
}
|