Count allocs without side-effects
At the end of the benchmark program, heap stats are printed, and these stats will be wrong if we reset counters in the middle. Also remove the function to reset counters, in order to encourage other programs to behave correctly as well. Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
This commit is contained in:
parent
cd4ad0c67a
commit
6ced002a69
3 changed files with 4 additions and 14 deletions
|
@ -98,11 +98,6 @@ void mbedtls_memory_buffer_alloc_status( void );
|
|||
*/
|
||||
void mbedtls_memory_buffer_alloc_count_get( size_t *alloc_count, size_t *free_count );
|
||||
|
||||
/**
|
||||
* \brief Reset alloc/free counters.
|
||||
*/
|
||||
void mbedtls_memory_buffer_alloc_count_reset( void );
|
||||
|
||||
/**
|
||||
* \brief Get the peak heap usage so far
|
||||
*
|
||||
|
|
|
@ -528,12 +528,6 @@ void mbedtls_memory_buffer_alloc_count_get( size_t *alloc_count, size_t *free_co
|
|||
*free_count = heap.free_count;
|
||||
}
|
||||
|
||||
void mbedtls_memory_buffer_alloc_count_reset( void )
|
||||
{
|
||||
heap.alloc_count = 0;
|
||||
heap.free_count = 0;
|
||||
}
|
||||
|
||||
void mbedtls_memory_buffer_alloc_max_get( size_t *max_used, size_t *max_blocks )
|
||||
{
|
||||
*max_used = heap.maximum_used;
|
||||
|
|
|
@ -186,12 +186,12 @@ do { \
|
|||
#define MEMORY_MEASURE_INIT \
|
||||
size_t max_used, max_blocks, max_bytes; \
|
||||
size_t prv_used, prv_blocks; \
|
||||
size_t alloc_cnt, free_cnt; \
|
||||
size_t alloc_cnt, free_cnt, prv_alloc, prv_free; \
|
||||
mbedtls_memory_buffer_alloc_cur_get( &prv_used, &prv_blocks ); \
|
||||
mbedtls_memory_buffer_alloc_max_reset( );
|
||||
|
||||
#define MEMORY_MEASURE_RESET \
|
||||
mbedtls_memory_buffer_alloc_count_reset( );
|
||||
mbedtls_memory_buffer_alloc_count_get( &prv_alloc, &prv_free );
|
||||
|
||||
#define MEMORY_MEASURE_PRINT( title_len ) \
|
||||
mbedtls_memory_buffer_alloc_max_get( &max_used, &max_blocks ); \
|
||||
|
@ -202,7 +202,8 @@ do { \
|
|||
max_blocks -= prv_blocks; \
|
||||
max_bytes = max_used + MEM_BLOCK_OVERHEAD * max_blocks; \
|
||||
mbedtls_printf( "%6u heap bytes, %6u allocs", \
|
||||
(unsigned) max_bytes, (unsigned) alloc_cnt );
|
||||
(unsigned) max_bytes, \
|
||||
(unsigned)( alloc_cnt - prv_alloc ) );
|
||||
|
||||
#else
|
||||
#define MEMORY_MEASURE_INIT
|
||||
|
|
Loading…
Reference in a new issue