/* * Copyright (c) 2013-2016 Chris Newland. * Licensed under https://github.com/AdoptOpenJDK/jitwatch/blob/master/LICENSE-BSD * Instructions: https://github.com/AdoptOpenJDK/jitwatch/wiki */ package org.adoptopenjdk.jitwatch.jarscan.invokecount; import java.util.EnumMap; import java.util.Map; import org.adoptopenjdk.jitwatch.model.bytecode.Opcode; public class InvokeMethodCountMap { private Map<Opcode, MethodCountMap> opcodeMap = new EnumMap<>(Opcode.class); public void countInvocationOfMethod(Opcode opcode, String method) { MethodCountMap invokeCountMap = opcodeMap.get(opcode); if (invokeCountMap == null) { invokeCountMap = new MethodCountMap(); opcodeMap.put(opcode, invokeCountMap); } invokeCountMap.count(method); } public String toString(int limitPerInvoke) { StringBuilder builder = new StringBuilder(); for (Map.Entry<Opcode, MethodCountMap> entry : opcodeMap.entrySet()) { Opcode opcode = entry.getKey(); MethodCountMap invokeCountMap = entry.getValue(); builder.append(invokeCountMap.toString(opcode, limitPerInvoke)); } return builder.toString(); } }