Comment #3 on issue 23 by brainslog: Diameter Stack: Improve Diameter
Router (Performance & Footprint)
http://code.google.com/p/jdiameter/issues/detail?id=23
Some concerns regarding these changes:
- In requestEntryTable (Map), where a Long (Hop-by-Hop identifier) was used
as key, a String is now being used (Session-Id + Hop-by-Hop + End-to-End).
Besides the string concatenation performance issues, also the hashing
should be impacting the performance. Not sure this is a good measure to
avoid HbH collision.. which should not happen [that often];
- Removing (GC'ing) each message as it is sent seems also to be a perf
penalty.. on the other hand, inserting into an almost empty map is much
faster than to a crowded map. Do you have (if not, can you try?) concrete
tests with this change only to see what is the perf difference ?
- Fully clearing the Request Table doesn't seem nice, as the risk of losing
valid messages is very high, even if waiting 5000ms.. but with the GC in
place, it should not grow to such point.. unless there is some kind of
leak. Again, any comparison ?