summaryrefslogtreecommitdiff
path: root/src/test/ao_lisp_test.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2016-11-16 13:19:20 -0800
committerKeith Packard <keithp@keithp.com>2016-11-17 22:18:39 -0800
commit81f572512cad9cefadd4e4ede7678e2566117d2a (patch)
tree73a2d735924eedea6101b9209cd1abe7f19445b5 /src/test/ao_lisp_test.c
parent169454f5613dff38a6159166467b43a163c81e00 (diff)
altos/lisp: Optimize chunk searching in collect
Note range of existing chunks to exclude objects outside. Only look at chunks which have been set to reduce loop cost. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/test/ao_lisp_test.c')
-rw-r--r--src/test/ao_lisp_test.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/test/ao_lisp_test.c b/src/test/ao_lisp_test.c
index 720355d2..68e3a202 100644
--- a/src/test/ao_lisp_test.c
+++ b/src/test/ao_lisp_test.c
@@ -101,10 +101,34 @@ main (int argc, char **argv)
ao_lisp_file = NULL;
}
ao_lisp_read_eval_print();
+
printf ("collects: full: %d incremental %d\n",
ao_lisp_collects[AO_LISP_COLLECT_FULL],
ao_lisp_collects[AO_LISP_COLLECT_INCREMENTAL]);
+
printf ("freed: full %d incremental %d\n",
ao_lisp_freed[AO_LISP_COLLECT_FULL],
ao_lisp_freed[AO_LISP_COLLECT_INCREMENTAL]);
+
+ printf("loops: full %d incremental %d\n",
+ ao_lisp_loops[AO_LISP_COLLECT_FULL],
+ ao_lisp_loops[AO_LISP_COLLECT_INCREMENTAL]);
+
+ printf("loops per collect: full %f incremental %f\n",
+ (double) ao_lisp_loops[AO_LISP_COLLECT_FULL] /
+ (double) ao_lisp_collects[AO_LISP_COLLECT_FULL],
+ (double) ao_lisp_loops[AO_LISP_COLLECT_INCREMENTAL] /
+ (double) ao_lisp_collects[AO_LISP_COLLECT_INCREMENTAL]);
+
+ printf("freed per collect: full %f incremental %f\n",
+ (double) ao_lisp_freed[AO_LISP_COLLECT_FULL] /
+ (double) ao_lisp_collects[AO_LISP_COLLECT_FULL],
+ (double) ao_lisp_freed[AO_LISP_COLLECT_INCREMENTAL] /
+ (double) ao_lisp_collects[AO_LISP_COLLECT_INCREMENTAL]);
+
+ printf("freed per loop: full %f incremental %f\n",
+ (double) ao_lisp_freed[AO_LISP_COLLECT_FULL] /
+ (double) ao_lisp_loops[AO_LISP_COLLECT_FULL],
+ (double) ao_lisp_freed[AO_LISP_COLLECT_INCREMENTAL] /
+ (double) ao_lisp_loops[AO_LISP_COLLECT_INCREMENTAL]);
}