TMF: Introduce a fast linear timestamp transform
authorFrancis Giraldeau <francis.giraldeau@gmail.com>
Wed, 24 Dec 2014 18:40:22 +0000 (13:40 -0500)
committerAlexandre Montplaisir <alexmonthy@voxpopuli.im>
Tue, 13 Jan 2015 00:01:42 +0000 (19:01 -0500)
commit5745c0a3627df6b5d7a5b8c104359151029d86b4
tree7b3ccb722963e0afd41143fffd2061eab43b8c47
parentb698ec63bef42daa212c48d5a77473cdf9296804
TMF: Introduce a fast linear timestamp transform

The fast timestamp transform uses standard integer arithmetic to compute the
the transform, instead of BigDecimal, yet producing monotonic timestamp within
3ns of the original function.

Test that the fast transform yields about the same results as the original
function, either forward or backward, and also verify that the cache is
effectively used.

The benchmark results are:

Transform   | time (ms)
-----------------------
original    |     17310
fast        |       256

This benchmark suggests that the fast transform is about 67 times faster than
the original transform.

Change-Id: Ifdf8e23b3e042bf1f2b0454e64a4ab4c47d408d4
Signed-off-by: Francis Giraldeau <francis.giraldeau@gmail.com>
Reviewed-on: https://git.eclipse.org/r/38770
Reviewed-by: Hudson CI
Reviewed-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
Tested-by: Alexandre Montplaisir <alexmonthy@voxpopuli.im>
org.eclipse.tracecompass.lttng2.kernel.core.tests/src/org/eclipse/tracecompass/lttng2/kernel/core/tests/event/matchandsync/ExperimentSyncTest.java
org.eclipse.tracecompass.tmf.core.tests/perf/org/eclipse/tracecompass/tmf/core/tests/perf/synchronization/TimestampTransformBenchmark.java
org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/synchronization/AllTests.java
org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/synchronization/TsTransformFactoryTest.java
org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/synchronization/TsTransformFastTest.java [new file with mode: 0644]
org.eclipse.tracecompass.tmf.core.tests/src/org/eclipse/tracecompass/tmf/core/tests/synchronization/TsTransformTest.java
org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/synchronization/TmfTimestampTransformLinear.java
org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/internal/tmf/core/synchronization/TmfTimestampTransformLinearFast.java [new file with mode: 0644]
org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/synchronization/ITmfTimestampTransform.java
org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/synchronization/TimestampTransformFactory.java
This page took 0.026803 seconds and 5 git commands to generate.