Add API for get the memory stats (#1923)

JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang zidong.jiang@intel.com
This commit is contained in:
Zidong Jiang
2017-08-04 15:44:37 +08:00
committed by Zoltan Herczeg
parent 8b5fe254d9
commit c242248b47
9 changed files with 165 additions and 5 deletions
+34
View File
@@ -33,6 +33,7 @@
#include "ecma-promise-object.h"
#include "jcontext.h"
#include "jerryscript.h"
#include "jmem.h"
#include "js-parser.h"
#include "re-compiler.h"
@@ -254,6 +255,39 @@ jerry_gc (void)
ecma_gc_run (JMEM_FREE_UNUSED_MEMORY_SEVERITY_LOW);
} /* jerry_gc */
/**
* Get heap memory stats.
*
* @return true - get the heap stats successful
* false - otherwise. Usually it is because the MEM_STATS feature is not enabled.
*/
bool
jerry_get_memory_stats (jerry_heap_stats_t *out_stats_p) /**< [out] heap memory stats */
{
#ifdef JMEM_STATS
if (out_stats_p == NULL)
{
return false;
}
jmem_heap_stats_t jmem_heap_stats = {0};
jmem_heap_get_stats (&jmem_heap_stats);
*out_stats_p = (jerry_heap_stats_t)
{
.version = 1,
.size = jmem_heap_stats.size,
.allocated_bytes = jmem_heap_stats.allocated_bytes,
.peak_allocated_bytes = jmem_heap_stats.peak_allocated_bytes
};
return true;
#else
JERRY_UNUSED (out_stats_p);
return false;
#endif
} /* jerry_get_memory_stats */
/**
* Simple Jerry runner
*