ss: make node cache static
authorMatthew Khouzam <matthew.khouzam@ericsson.com>
Wed, 13 Apr 2016 22:01:04 +0000 (18:01 -0400)
committerMatthew Khouzam <matthew.khouzam@ericsson.com>
Tue, 3 May 2016 19:49:42 +0000 (15:49 -0400)
commit4018d70a5dc02af1f3c4d6a1d5724b341595bc72
treed7c3174cf9cd719fb0234ee4c8f6ef5f4befe3f7
parent1b084865c7c48055f673b20042ab53b3b5d1a9ed
ss: make node cache static

The state system is being used in many places now. A kernel trace
can have over 10 state systems running simultaneously. Therefore,
the caches have been taking more and more space. A summary reading
of heap dumps showed that for a kernel trace now, 512 mb is needed
for these caches. This will not scale.

This patch makes ONE cache for all of trace compass. There is a tiny
heuristic, each location is offsetted by the object's hashcode. This
is to avoid too much cache thrashing du to temporal co-locality.

The seek times in trace compass (going from one place to another)
are accelerated by a factor of 3 and are noticeable on an i7 with
16gb of ram and an ssd.

Moreover, this patch improves scalability, by making trace compass
not run out of memory after opening 5 kernel traces simultaneously.

Change-Id: I9c6509b0e32c04025fc66c0fdda3d31e971584b4
Signed-off-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/70600
Reviewed-by: Hudson CI
Reviewed-by: Alexandre Montplaisir <alexmonthy@efficios.com>
statesystem/org.eclipse.tracecompass.statesystem.core/src/org/eclipse/tracecompass/internal/statesystem/core/backend/historytree/HT_IO.java
This page took 0.030558 seconds and 5 git commands to generate.