byrnedj/libmrc-old
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
libmrc
------
The goal of libmrc is to provide a black box implementation
of miss ratio curve APIs for applications wishing to use
them in memory management.
We use the Average Eviction Time algorithm that measures reuse
time of references. Default sample rate is 1/10,000. Default
interval is 1000 objects.
When the solver is invoked, it will return the application's
miss ratio curve and the estimated working set size (N).
This is best done in an application's background thread in
order to avoid critical path overhead.
------
Example usage:
#include <mrc.h>
mrc_t *app_mrc = init_mrc(sample_rate,mrc_interval);
//on data reference
take_sample(app_mrc,app_reference);
...
//to output MRC
solve_mrc(app_mrc);
for (int i = 0; i < app_mrc->mrc_size; i++)
{
printf("%d,%f\n",i*app_mrc->interval,app_mrc[i]);
}