Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.eclipse.jgit.transport;
- import org.eclipse.jgit.junit.TestRepository;
- import org.eclipse.jgit.lib.*;
- import org.eclipse.jgit.revwalk.RevBlob;
- import org.eclipse.jgit.storage.file.PackFile;
- import org.eclipse.jgit.util.JGitTestUtil;
- import org.eclipse.jgit.util.NB;
- import org.eclipse.jgit.util.TemporaryBuffer;
- import java.io.*;
- import java.security.MessageDigest;
- import java.util.zip.Deflater;
- public class IndexPackPerformanceTest extends RepositoryTestCase {
- public void testIndexingJGit() throws IOException {
- File file = new File("/home/roberto/development/pack-jgit/pack-47f72d3e4b1b53f15dcce9a9a3af8c4095198668.pack");
- long totalDuration=0;
- System.out.println("Warming up...");
- for (int warmUpRun=1;warmUpRun<=3;++warmUpRun) {
- execute(file,-warmUpRun);
- }
- int runs = 20;
- for (int run=1;run<=runs;++run) {
- long duration = execute(file, run);
- System.out.println(duration);
- totalDuration+= duration;
- }
- System.out.println("Average duration = "+((float) totalDuration)/runs);
- }
- private long execute(File file, int run) throws IOException {
- InputStream is = new FileInputStream(file);
- try {
- String fileNameForRun = "tmp_pack1_" + run;
- IndexPack pack = new IndexPack(db, is, new File(trash, fileNameForRun));
- pack.setObjectChecking(true);
- long start=System.currentTimeMillis();
- pack.index(NullProgressMonitor.INSTANCE);
- long duration = System.currentTimeMillis() - start;
- PackFile pf = new PackFile(new File(trash, fileNameForRun+".idx"), new File(trash, fileNameForRun+".pack"));
- assertTrue(pf.hasObject(ObjectId.fromString("ff70931d6db1067f63a738dbaae6f0786e7d9e01")));
- assertTrue(pf.hasObject(ObjectId.fromString("ffeca20f53facc6861ed2e11aa79f9ef0e1edc1f")));
- assertTrue(pf.hasObject(ObjectId.fromString("4a50dec1cc9a73876efb22b22683242a87c9ded7")));
- String[] goo = new String[] {"fe663a9fda1d9fc7905ac8715928ec6bed7749b4","fe6d210c11aaa4c28fe4be30c7f2029530387395","fe7cbd4ebb7eaf1449e1a8a23e00d8e3a21afe17","fe9a8c095ea980dcfa570e0d41c33d0f5893ee11","fea0d91208c7ee8da1f6a765f8caf4705d3d78aa","feae800436301b4852e0915e582995fa04dcb2d7","febcbc65a1f6a1db4248be6466dba9782cc76622","fedd7cda15c11a5b0292864ef90c7375c9a95a68","fede9489588f3275c4daaf620f91ad1b18361b76","fee0a36f0b5a7c6715346b07d83dcdc9ddf96e0a","feef66f9ad3d40bde7b342051271e0da26e23563","fef38ccac09d2da0e7fd8c7c8604d2d84bbe9c6d","fef8c6cf650af58681ddfee1398a7d81c8ba8308","fefc1145db33182d8d736f2dfeded9bd5699ca40","ff02d643998beae67a536eecb4459c8fe94759e1","ff1c6fd89d26a5267edeb240057edd2bd0a4f331","ff2fe2ccbea52b9c86ddbdaf0d78118334d64679","ff442b618826a7d05203b643bf0a20e843ee6d33","ff59ef72e39595c4e5673e26993810082a7a5916","ff70931d6db1067f63a738dbaae6f0786e7d9e01","ff8c9a6c1edb584c60c953c2d3343c61a2c71a6a","ff9e666149ad6d128b7fe1aacbb64f9e17bdc805","ffa34a710445b8bd6163fc125821af6bab3394ae","ffa73ed82299bcf3189ee5beedd6706b53233438","ffa9142d1241a0f9fd1e17fe012646090b9cdc47","ffb7710e4993dead5b110830671a35588de576d1","ffc28edc55e2758818ca1046652f16c0abea3cd9","ffe3ddd4a69ac4dc7229146217991215ab32ec9d","ffeca20f53facc6861ed2e11aa79f9ef0e1edc1f","fff76dffb694500f4173c253576be819ab622569","fffe7e093bc3d37b4c537e61b8359f5398168467"};
- for (String g : goo) {
- assertTrue(pf.hasObject(ObjectId.fromString(g)));
- }
- try {
- Thread.sleep(1000L);
- } catch (InterruptedException e) {}
- return duration;
- } finally {
- is.close();
- }
- }
- }
Add Comment
Please, Sign In to add comment