In a recent article I examined how using primitives and
collections which support primitives natively instead of Wrappers and
standard collections can reduce memory usage and improve performance.
Different way to have a Map of int/Integer
There are a number of
ways you can use int/Integer and a number of collections you store them
in. Depending on which approach you use can have a big difference on
the performance and the amount of garbage produced.
Test
Performance Range
Memory used
Use Integer wrappers and HashMap
71 - 134 (ns)
53 MB/sec
Use int primitives and HashMap
45 - 76 (ns)
36 MB/sec
Use int primitives and FastMap
58 - 93 (ns)
28 MB/sec
Use int primitives and TIntIntHashMap
18 - 28 (ns)
nonimal
Use int primitives and simple hash map
6 - 9 (ns)
nonimal
The performance range was the typical (50%tile) and one
of the higher (98%tile) timings. The garbage was the result of 900,000
loops per second.
No comments:
Post a Comment