tmf: Implement a cache of TmfStateValue

This patch provides a caching implementation in the TmfStateValue factory.
TmfStateValue are immutable and can be shared.

By changing the size of the cache, we observed this cache ratio.

size         hit      total     ratio
  2 count:  7369956/15551000 [0.4739216770625683]
  4 count: 11742495/15530000 [0.7561168705730843]
  8 count: 14622383/15545000 [0.9406486330009649]
 16 count: 15007948/15552000 [0.965017232510288]
 32 count: 15372868/15543000 [0.9890541079585665]
 64 count: 15432506/15523000 [0.9941703279005347]
128 count: 15488720/15534000 [0.9970851036436205]

Which seems to be an excellent ratio for a really small cache.
The same idea is used with Integer.valueOf(...).

Change-Id: I3701b900035d83b19531101ab60e7292899d8cef
Signed-off-by: Etienne Bergeron <etienne.bergeron@gmail.com>
Reviewed-on: https://git.eclipse.org/r/19030
Reviewed-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
IP-Clean: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
Tested-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
1 file changed