Checking retained memory dumps via Eclipse MAT, I’ve spotted that SqmFunctionRegistry has an unusually high memory footprint; this seems due to its use of TreeMap instances internally, which are also known to not perform very well on lookups. I’m proposing to replace these maps with a ConcurrentHashMap wrapper which retains the same semantics as the current TreeMap: case-insensitive access, and a logging capability which logs all registered functions in stable order. |