Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.10.0
-
None
-
None
Description
AbstractID.toString() and AbstractID.toShortString() call StringUtils.byteToHexString(...) which uses a StringBuilder to convert from binary to hex. This is a hotspot when scaling the number of workers.
While testing on my single node with parallelism=512 jvisualvm reports 600,000 calls taking 13.4 seconds. Improving StringUtils.byteToHexString(...) reduces the time to 1.3 seconds. Additionally memoizing the string values in AbstractID reduce the time to 350 ms and the number of calls to StringUtils.byteToHexString(...) to ~1000.