Undo Performance Benchmarks

The table below shows benchmarks of Undo’s recording technology on several common applications, showing:

  • Runtime (native) – the original workload, running without recording
  • Runtime (record) – the same workload, recorded by Undo

Once a deterministic recording has been captured by Undo, a bug can be efficiently time travel debugged to resolve critical issues with orders of magnitude less engineering time.

Workload
Runtime (native)
Runtime (record)
Overall slowdown
Per-thread slowdown
Mixed syscall workload

sqlite – 100,000 insertions

3.8s 11.1s 2.9x 2.9x
Compute-intensive workload

gzip – 128MB input file

4.8s 7.3s 1.5x 1.5x
Compute-intensive workload

ffmpeg – VP9 to H264 transcode

1.8s 9.8s 5.6x 1.4x

In these results, the per-thread slowdown is kept low (at 1.4 – 2.9x) by Undo’s dynamic just-in-time instrumentation, which captures only the minimum data required to replay the process.

Multithreaded workloads may see an additional overall slowdown since Undo serializes their execution (using pre-emptive scheduling, so that race conditions are still reproduced). Compute-intensive applications like ffmpeg (shown above) show the most overhead due to this serialization.  Common uses of threads for IO concurrency show less impact.

 

Want to talk an engineer about Undo and whether it’ll work in your environment? Book a demo below.

Book a demo

Stay informed. Get the latest in your inbox.