Index: tests/zombies/string-perf/Makefile
===================================================================
--- tests/zombies/string-perf/Makefile	(revision 01db3013a1860498b8e5281ebd2e0dab01171bf5)
+++ tests/zombies/string-perf/Makefile	(revision 01db3013a1860498b8e5281ebd2e0dab01171bf5)
@@ -0,0 +1,91 @@
+
+CFABUILD = ~/cfa2/build-perf
+LIBCFA = $(CFABUILD)/libcfa/*/src/.libs/libcfa.so
+
+CFA = $(CFABUILD)/driver/cfa
+PERFFLAGS_CFA = -nodebug -O2
+PERFFLAGS_CXX = -DNDEBUG -O2
+
+#PERFPROGS can include this one, but it's 10x slower than its peers
+#	perfexp-cfa-hl-pta-noshare \
+
+PERFPROGS = \
+	perfexp-cfa-hl-pta-share \
+	perfexp-cfa-hl-peq-share \
+	perfexp-cfa-ll-pta-share \
+	perfexp-cfa-ll-peq-share \
+	perfexp-cfa-hl-peq-noshare \
+	perfexp-cfa-ll-pta-noshare \
+	perfexp-cfa-ll-peq-noshare \
+	perfexp-stl-pta \
+	perfexp-stl-peq \
+	perfexp-buhr94-pta \
+	perfexp-buhr94-peq
+
+all : $(PERFPROGS)
+
+perfexp-cfa-hl-pta-share : prog.cfa $(LIBCFA)
+	$(CFA) $(PERFFLAGS_CFA) $^ -o $@ -DIMPL_CFA_HL_SHARE -DOP_PLUS_THEN_ASSIGN
+
+perfexp-cfa-hl-peq-share : prog.cfa $(LIBCFA)
+	$(CFA) $(PERFFLAGS_CFA) $^ -o $@ -DIMPL_CFA_HL_SHARE -DOP_PLUSEQ
+
+perfexp-cfa-ll-pta-share : prog.cfa $(LIBCFA)
+	$(CFA) $(PERFFLAGS_CFA) $^ -o $@ -DIMPL_CFA_LL_SHARE -DOP_PLUS_THEN_ASSIGN
+
+perfexp-cfa-ll-peq-share : prog.cfa $(LIBCFA)
+	$(CFA) $(PERFFLAGS_CFA) $^ -o $@ -DIMPL_CFA_LL_SHARE -DOP_PLUSEQ
+
+perfexp-cfa-hl-pta-noshare : prog.cfa $(LIBCFA)
+	$(CFA) $(PERFFLAGS_CFA) $^ -o $@ -DIMPL_CFA_HL_NOSHARE -DOP_PLUS_THEN_ASSIGN
+
+perfexp-cfa-hl-peq-noshare : prog.cfa $(LIBCFA)
+	$(CFA) $(PERFFLAGS_CFA) $^ -o $@ -DIMPL_CFA_HL_NOSHARE -DOP_PLUSEQ
+
+perfexp-cfa-ll-pta-noshare : prog.cfa $(LIBCFA)
+	$(CFA) $(PERFFLAGS_CFA) $^ -o $@ -DIMPL_CFA_LL_NOSHARE -DOP_PLUS_THEN_ASSIGN
+
+perfexp-cfa-ll-peq-noshare : prog.cfa $(LIBCFA)
+	$(CFA) $(PERFFLAGS_CFA) $^ -o $@ -DIMPL_CFA_LL_NOSHARE -DOP_PLUSEQ
+
+perfexp-stl-pta : prog.cfa
+	$(CXX) -xc++ $(PERFFLAGS_CXX) $^ -o $@ -DIMPL_STL -DOP_PLUS_THEN_ASSIGN
+
+perfexp-stl-peq : prog.cfa
+	$(CXX) -xc++ $(PERFFLAGS_CXX) $^ -o $@ -DIMPL_STL -DOP_PLUSEQ
+
+perfexp-buhr94-pta.o : prog.cfa
+	$(CXX) -xc++ -c $(PERFFLAGS_CXX) $^ -o $@ -DIMPL_BUHR94 -DOP_PLUS_THEN_ASSIGN
+
+perfexp-buhr94-peq.o : prog.cfa
+	$(CXX) -xc++ -c $(PERFFLAGS_CXX) $^ -o $@ -DIMPL_BUHR94 -DOP_PLUSEQ
+
+buhr94-string.o:
+	$(CXX) -xc++ -c $(PERFFLAGS_CXX) ~/usys1/sm/string/StringSharing/src/string.cc -o $@
+
+buhr94-VbyteSM.o:
+	$(CXX) -xc++ -c $(PERFFLAGS_CXX) ~/usys1/sm/string/StringSharing/src/VbyteSM.cc -o $@
+
+perfexp-buhr94-pta : perfexp-buhr94-pta.o buhr94-string.o buhr94-VbyteSM.o
+	$(CXX) $(PERFFLAGS_CXX) $^ -o $@
+
+perfexp-buhr94-peq : perfexp-buhr94-peq.o buhr94-string.o buhr94-VbyteSM.o
+	$(CXX) $(PERFFLAGS_CXX) $^ -o $@
+
+clean:
+	rm -f *.o perfexp*
+
+MEASURE = $(PERFPROGS)
+CORPORI = ../corpus-100-*-1.txt
+
+measurment: $(MEASURE)
+	tofile=measurement-`date '+%F--%H-%M-%S'`.csv ; \
+	echo $$tofile ; \
+	for prog in $(MEASURE) ; do \
+	    for corpus in $(CORPORI) ; do \
+			corpusbody=`cat $$corpus` ; \
+			printed=`./$$prog $$corpusbody` ; \
+			echo $$prog,$$corpus,$$printed  >>  $$tofile ; \
+		done ; \
+	done ; \
+	cat $$tofile
