shithub: mc

Download patch

ref: 3a49659e6d6d1d0289b7b0501eb03f23d48e828f
parent: be41274b409a6ca07de23c20c8644d599ac5bf91
author: Ori Bernstein <[email protected]>
date: Fri Aug 15 11:21:33 EDT 2014

Add copious allocs to benchmarks.

--- a/bench/Makefile
+++ b/bench/Makefile
@@ -1,7 +1,7 @@
 BIN=runner
 OBJ=runner.o
-BENCHSRC=intsort.myr
-BENCHUTIL=
+BENCHSRC=intsort.myr \
+	 copious-allocs.myr \
 
 include ../config.mk
 include ../mk/c.mk
@@ -9,5 +9,5 @@
 bench: runner $(BENCHSRC:.myr=)
 	./runner $(BENCHSRC:.myr=)
 
-$(BENCHSRC:.myr=): $(BENCHSRC) $(BENCHUTIL)
-	../myrbuild/myrbuild -b $@ [email protected] $(BENCHUTIL)
+$(BENCHSRC:.myr=): $(BENCHSRC)
+	../myrbuild/myrbuild -b $@ [email protected]
--- /dev/null
+++ b/bench/copious-allocs.myr
@@ -1,0 +1,28 @@
+use std
+
+type blob = struct
+	x : int[10]
+;;
+
+const main = {
+	var i, j
+	var a : blob#[10000]
+
+	for j = 0; j < 100; j++
+		/* alloc forwards, dealloc forwards */
+		for i = 0; i < a.len; i++
+			a[i] = std.alloc()
+		;;
+		for i = 0; i < a.len; i++
+			std.free(a[i])
+		;;
+
+		/* alloc forwards, dealloc backwards */
+		for i = 0; i < a.len; i++
+			a[i] = std.alloc()
+		;;
+		for i = a.len; i > 0; i--
+			std.free(a[i - 1])
+		;;
+	;;
+}