@Setup public void setup() { // sets up a ShapeMap and a HashMap with 1_000_000 keys each // // { // :k0 -> v0 // :k0 -> v1 // ... // :k999999 -> v999999 // } // // Benchmarks access key 123456 // HashMap hashMap = Util.hashMapRange(1_000_000); // ShapeMap shapeMap = new ShapeMap<>(hashMap); k = ShapeKey.get("k123456"); a = ShapeMap.accessor(k); // learn the location once a.get(shapeMap); // over-trained accessor fa = Util.fallbackAccessor(k); }
@Benchmark public Object shapeMap_seta() { shapeMap.seta(a, "vn1"); return a; }
@Benchmark public String shapeMap_puta() { return shapeMap.puta(a, "vn1"); }
@Benchmark public String shapeMap_get() { return shapeMap.get(k); }