In order to measure the decompression performance, the acl_decompressor tool is used to extract the relevant metrics and a python script is used to parse them.
Here are the clips we measure on:
- The 42 regression clips from CMU database
- The 5 clips from the Matinee fight scene
Note that the data is not yet conveniently packaged.
Here are the platforms we measure on:
- Desktop: Intel i7-6850K @ 3.8 GHz (for v1.2 and earlier)
- Desktop: Ryzen 2950X @ 3.5 GHz (for v1.3 and later)
- Laptop: MacBook Pro mid 2014 @ 2.6 GHz
- Phone: Android Pixel 3 @ 2.5 GHz
- Tablet: iPad Pro 10.5 inch @ 2.39 GHz
We only show a few compilers and architectures to keep the graphs readable.
Unless otherwise specified, the results are from release 2.0.0
The uniformly sampled algorithm offers consistent performance regardless of the playback direction. Shown here is the median performance of decompress_pose
with a cold CPU cache for 3 clips with forward, backward, and random playback on the iPad.
Clip Name | Forward | Backward | Random |
---|---|---|---|
104_30 | 0.978 us | 1.010 us | 1.014 us |
Trooper_1 | 2.432 us | 2.258 us | 2.402 us |
Trooper_Main | 30.953 us | 30.658 us | 30.776 us |
As can be seen, the performance is consistent regardless of the playback direction. It also remains consistent regardless of the clip sample rate and the clip playback rate.
This function decompresses a whole pose in one go. Shown here is forward playback with a cold CPU cache.
Here is the delta with the previous version:
This function decompresses a single bone. To generate the graphs, we measure the cost of decompressing a whole pose one bone at a time. Shown here is forward playback with a cold CPU cache.
Here is the delta with the previous version: