package org.dcache.tests.util; import org.junit.Test; import diskCacheV111.util.FsPath; import org.dcache.util.PrefixMap; public class PrefixMapPerformanceTest { protected void populateSmall(PrefixMap<Integer> map) { map.put(FsPath.create("/pnfs/ndgf.org/data"), 1); } protected void populateMedium(PrefixMap<Integer> map) { map.put(FsPath.create("/pnfs/ndgf.org/data"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/a"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/b"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/c"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/d"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/e"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/f"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/g"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/h"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/i"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/j"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/k"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/l"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/m"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/n"), 1); } protected void populateLarge(PrefixMap<Integer> map) { map.put(FsPath.create("/pnfs/ndgf.org/data"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/a"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/b"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/c"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/d"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/e"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/f"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/g"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/h"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/i"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/j"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/k"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/l"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/m"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/n"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/o"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/p"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/q"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/r"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/s"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/t"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/u"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/v"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/w"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/x"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/y"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/z"), 1); } protected void populateHuge(PrefixMap<Integer> map) { map.put(FsPath.create("/pnfs/ndgf.org/data"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/a"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/b"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/c"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/d"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/e"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/f"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/g"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/h"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/i"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/j"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/k"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/l"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/m"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/n"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/o"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/p"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/q"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/r"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/s"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/t"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/u"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/v"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/w"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/x"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/y"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data/z"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/a"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/b"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/c"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/d"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/e"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/f"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/g"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/h"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/i"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/j"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/k"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/l"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/m"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/n"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/o"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/p"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/q"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/r"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/s"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/t"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/u"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/v"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/w"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/x"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/y"), 1); map.put(FsPath.create("/pnfs/ndgf.org/data1/z"), 1); } protected void doLookups(PrefixMap<Integer> map, int n) { for (int i = 0; i < n; i++) { map.get(FsPath.create("/pnfs/ndgf.org/data/atlas/disk/atlasmcdisk/mc08/log/mc08.107041.singlepart_gamma_Et40.simul.log.e342_s462_tid027777/log.027777._00144.job.log.tgz")); map.get(FsPath.create("/pnfs/ndgf.org/data/atlas/disk/atlasmcdisk/mc08/log/mc08.105010.J1_pythia_jetjet.simul.log.e344_s479_tid026864/log.026864._08004.job.log.tgz")); map.get(FsPath.create("/pnfs/ndgf.org/data/atlas/disk/atlasmcdisk/mc08/log/mc08.107410.singlepart_singlepiplus_logE.digit.log.e342_s439_tid023007/log.023007._24133.job.log.tgz")); map.get(FsPath.create("/pnfs/ndgf.org/data/atlas/disk/atlasmcdisk/mc08/log/mc08.107041.singlepart_gamma_Et40.simul.log.e342_s462_tid027777/log.027777._00737.job.log.tgz")); map.get(FsPath.create("/pnfs/ndgf.org/data/atlas/disk/atlasmcdisk/mc08/log/mc08.107410.singlepart_singlepiplus_logE.digit.log.e342_s439_tid023007/log.023007._21105.job.log.tgz")); map.get(FsPath.create("/pnfs/ndgf.org/data/atlas/disk/atlasmcdisk/mc08/log/mc08.107410.singlepart_singlepiplus_logE.digit.log.e342_s439_tid023007/log.023007._26618.job.log.tgz")); map.get(FsPath.create("/pnfs/ndgf.org/data/atlas/disk/atlasmcdisk/mc08/log/mc08.105010.J1_pythia_jetjet.simul.log.e344_s479_tid026864/log.026864._08724.job.log.tgz")); map.get(FsPath.create("/pnfs/ndgf.org/data/atlas/disk/atlasmcdisk/mc08/log/mc08.107410.singlepart_singlepiplus_logE.digit.log.e342_s439_tid023007/log.023007._21046.job.log.tgz")); map.get(FsPath.create("/pnfs/ndgf.org/data/atlas/disk/atlasmcdisk/mc08/log/mc08.107410.singlepart_singlepiplus_logE.digit.log.e342_s439_tid023007/log.023007._29927.job.log.tgz")); map.get(FsPath.create("/pnfs/ndgf.org/data/atlas/disk/atlasmcdisk/mc08/log/mc08.107410.singlepart_singlepiplus_logE.digit.log.e342_s439_tid023007/log.023007._25861.job.log.tgz")); } } @Test public void compareSmall() { PrefixMap<Integer> h = new PrefixMap<>(); populateSmall(h); long t1 = System.currentTimeMillis(); doLookups(h, 100000); long t2 = System.currentTimeMillis(); System.out.println("1000000 lookups in set with " + h.size() + " entries: " + (t2 - t1) + "ms"); } @Test public void compareMedium() { PrefixMap<Integer> h = new PrefixMap<>(); populateMedium(h); long t1 = System.currentTimeMillis(); doLookups(h, 100000); long t2 = System.currentTimeMillis(); System.out.println("1000000 lookups in set with " + h.size() + " entries: " + (t2 - t1) + "ms"); } @Test public void compareLarge() { PrefixMap<Integer> h = new PrefixMap<>(); populateLarge(h); long t1 = System.currentTimeMillis(); doLookups(h, 100000); long t2 = System.currentTimeMillis(); System.out.println("1000000 lookups in set with " + h.size() + " entries: " + (t2 - t1) + "ms"); } @Test public void compareHuge() { PrefixMap<Integer> h = new PrefixMap<>(); populateHuge(h); long t1 = System.currentTimeMillis(); doLookups(h, 100000); long t2 = System.currentTimeMillis(); System.out.println("1000000 lookups in set with " + h.size() + " entries: " + (t2 - t1) + "ms"); } }