diff test/org/tmatesoft/hg/test/TestHistory.java @ 100:b71b3f7d24d4

Primitive performance test
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Fri, 28 Jan 2011 02:15:12 +0100
parents bcd31a4c638a
children 777ab7034c1b
line wrap: on
line diff
--- a/test/org/tmatesoft/hg/test/TestHistory.java	Thu Jan 27 23:08:51 2011 +0100
+++ b/test/org/tmatesoft/hg/test/TestHistory.java	Fri Jan 28 02:15:12 2011 +0100
@@ -22,12 +22,14 @@
 
 import org.tmatesoft.hg.core.Cset;
 import org.tmatesoft.hg.core.LogCommand;
+import org.tmatesoft.hg.core.StatusCommand;
 import org.tmatesoft.hg.core.LogCommand.CollectHandler;
 import org.tmatesoft.hg.core.LogCommand.FileHistoryHandler;
 import org.tmatesoft.hg.core.LogCommand.FileRevision;
 import org.tmatesoft.hg.core.Path;
 import org.tmatesoft.hg.repo.HgRepository;
 import org.tmatesoft.hg.repo.HgLookup;
+import org.tmatesoft.hg.repo.HgStatusCollector;
 import org.tmatesoft.hg.test.LogOutputParser.Record;
 
 
@@ -46,6 +48,7 @@
 		TestHistory th = new TestHistory(new HgLookup().detectFromWorkingDir());
 		th.testCompleteLog();
 		th.testFollowHistory();
+		th.testPerformance();
 	}
 
 	public TestHistory(HgRepository hgRepo) {
@@ -112,4 +115,19 @@
 		}
 		System.out.println(what + (hasErrors ? " FAIL" : " OK"));
 	}
+
+	public void testPerformance() throws Exception {
+		final int runs = 10;
+		final long start1 = System.currentTimeMillis();
+		for (int i = 0; i < runs; i++) {
+			changelogParser.reset();
+			eh.run("hg", "log", "--debug");
+		}
+		final long start2 = System.currentTimeMillis();
+		for (int i = 0; i < runs; i++) {
+			new LogCommand(repo).execute();
+		}
+		final long end = System.currentTimeMillis();
+		System.out.printf("'hg log --debug', %d runs: Native client total %d (%d per run), Java client %d (%d)\n", runs, start2-start1, (start2-start1)/runs, end-start2, (end-start2)/runs);
+	}
 }