# Performance Comparison: Allocators > **This file is auto-generated** > > All measurments were taken on 12th Gen Intel(R) Core(TM) i9-12900K with 24 logical cores.
> Unity Editor version: 2022.2.8f1
> To regenerate this file locally use: **DOTS -> Unity.Collections -> Generate ***** menu.
## Table of Contents - [Benchmark Results](#benchmark-results) - [RewindableAllocator](#rewindableallocator) ## Benchmark Results The following benchmarks make **150 consecutive allocations** per sample set.
Multithreaded benchmarks make the full **150 consecutive allocations *per worker thread*** per sample set.
The **Min of 50 sample sets** is compared against the baseline on the far right side of the table.
5 extra sample sets are run as warmup.

> **Legend** > > `(S)` = Safety Enabled
> `(B)` = Burst Compiled *with Safety Disabled*
> `(S+B)` = Burst Compiled *with Safety Enabled*
> `(E)` = Engine Provided
>
> *`italic`* results are for benchmarking comparison only; these are not included in standard Performance Framework tests

### *RewindableAllocator* | Functionality | RewindableAllocator (S) | RewindableAllocator (S+B) | RewindableAllocator (B) | *TempJob (E)* | *Temp (E)* | *Persistent (E)* | |---|--:|--:|--:|--:|--:|--:| | `FixedSize(1, 1024)`*³* | 11.4µs  (2.2x)       | 4.0µs   (6.3x)       | 3.8µs   (6.6x) 🟢 | *17.0µs  (1.5x)*       | *10.1µs   (2.5x)*       | *25.1µs (1.0x)* 🟠 | | `FixedSize(2, 1024)`*²˒³* | 23.0µs  (2.1x)       | 23.1µs   (2.0x)       | 9.0µs   (5.2x) 🟢 | *20.2µs  (2.3x)*       | *11.2µs   (4.2x)*       | *47.2µs (1.0x)* 🟠 | | `FixedSize(4, 1024)`*²˒³* | 66.4µs  (1.9x)       | 71.9µs   (1.7x)       | 80.8µs   (1.5x)       | *23.5µs  (5.3x)*       | *11.5µs  (10.7x)* 🟢 | *123.5µs (1.0x)* 🟠 | | `FixedSize(8, 1024)`*²˒³* | 167.1µs  (2.2x)       | 169.2µs   (2.2x)       | 167.3µs   (2.2x)       | *45.6µs  (8.0x)*       | *12.8µs  (28.6x)* 🟢 | *366.4µs (1.0x)* 🟠 | | `FixedSize(1, 1048576)`*³* | 11.9µs (16.3x)       | 4.7µs  (41.3x)       | 4.4µs  (44.1x) 🟢 | *17.1µs (11.4x)*       | *10.9µs  (17.8x)*       | *194.1µs (1.0x)* 🟠 | | `FixedSize(2, 1048576)`*²˒³* | 26.0µs (10.0x)       | 17.0µs  (15.2x)       | 14.1µs  (18.4x)       | *32.0µs  (8.1x)*       | *11.7µs  (22.1x)* 🟢 | *258.9µs (1.0x)* 🟠 | | `FixedSize(4, 1048576)`*²˒³* | 70.1µs (11.6x)       | 71.3µs  (11.4x)       | 75.3µs  (10.8x)       | *208.5µs  (3.9x)*       | *12.5µs  (65.0x)* 🟢 | *812.2µs (1.0x)* 🟠 | | `FixedSize(8, 1048576)`*²˒³* | 139.7µs (14.6x)       | 161.0µs  (12.7x)       | 179.8µs  (11.3x)       | *1317.1µs  (1.5x)*       | *19.5µs (104.6x)* 🟢 | *2039.9µs (1.0x)* 🟠 | | `IncSize(1, 4096)`*⁴* | 11.9µs  (4.0x)       | 4.6µs  (10.3x)       | 4.3µs  (11.0x) 🟢 | *17.9µs  (2.6x)*       | *10.3µs   (4.6x)*       | *47.2µs (1.0x)* 🟠 | | `IncSize(2, 4096)`*²˒⁴* | 26.8µs  (4.8x)       | 10.9µs  (11.7x)       | 10.5µs  (12.2x) 🟢 | *31.7µs  (4.0x)*       | *10.9µs  (11.7x)*       | *127.6µs (1.0x)* 🟠 | | `IncSize(4, 4096)`*²˒⁴* | 58.9µs  (7.6x)       | 67.6µs   (6.6x)       | 64.5µs   (6.9x)       | *71.9µs  (6.2x)*       | *11.2µs  (39.7x)* 🟢 | *444.7µs (1.0x)* 🟠 | | `IncSize(8, 4096)`*²˒⁴* | 169.3µs  (7.8x)       | 159.0µs   (8.3x)       | 185.7µs   (7.1x)       | *350.8µs  (3.8x)*       | *11.5µs (114.7x)* 🟢 | *1319.0µs (1.0x)* 🟠 | | `IncSize(1, 65536)`*⁴* | 12.7µs (49.2x)       | 5.0µs (125.1x)       | 4.7µs (133.1x) 🟢 | *19.0µs (32.9x)*       | *11.0µs  (56.9x)*       | *625.4µs (1.0x)* 🟠 | | `IncSize(2, 65536)`*²˒⁴* | 25.0µs (46.3x)       | 15.8µs  (73.3x)       | 13.0µs  (89.1x)       | *578.1µs  (2.0x)*       | *11.3µs (102.5x)* 🟢 | *1157.7µs (1.0x)* 🟠 | | `IncSize(4, 65536)`*²˒⁴* | 73.3µs (34.7x)       | 73.0µs  (34.8x)       | 70.5µs  (36.1x)       | *2098.0µs  (1.2x)*       | *11.9µs (213.6x)* 🟢 | *2542.2µs (1.0x)* 🟠 | | `IncSize(8, 65536)`*²˒⁴* | 141.3µs (40.5x)       | 168.1µs  (34.1x)       | 162.6µs  (35.2x)       | *6036.0µs  (0.9x)* 🟠 | *12.7µs (450.8x)* 🟢 | *5724.9µs (1.0x)*       | | `DecSize(1, 4096)`*⁵* | 12.2µs  (6.1x)       | 4.6µs  (16.1x)       | 4.3µs  (17.2x) 🟢 | *16.9µs  (4.4x)*       | *9.8µs   (7.5x)*       | *73.9µs (1.0x)* 🟠 | | `DecSize(2, 4096)`*²˒⁵* | 27.6µs  (3.4x)       | 12.5µs   (7.6x)       | 11.9µs   (8.0x)       | *37.3µs  (2.5x)*       | *11.4µs   (8.3x)* 🟢 | *94.9µs (1.0x)* 🟠 | | `DecSize(4, 4096)`*²˒⁵* | 68.5µs  (7.5x)       | 74.7µs   (6.8x)       | 69.4µs   (7.4x)       | *79.3µs  (6.5x)*       | *11.0µs  (46.5x)* 🟢 | *511.6µs (1.0x)* 🟠 | | `DecSize(8, 4096)`*²˒⁵* | 173.5µs  (7.4x)       | 173.4µs   (7.4x)       | 168.3µs   (7.6x)       | *313.4µs  (4.1x)*       | *17.1µs  (75.1x)* 🟢 | *1284.6µs (1.0x)* 🟠 | | `DecSize(1, 65536)`*⁵* | 12.1µs (47.9x)       | 4.6µs (126.0x)       | 4.3µs (134.8x) 🟢 | *20.8µs (27.9x)*       | *11.7µs  (49.6x)*       | *579.8µs (1.0x)* 🟠 | | `DecSize(2, 65536)`*²˒⁵* | 28.6µs (37.1x)       | 17.7µs  (60.0x)       | 11.5µs  (92.3x) 🟢 | *658.8µs  (1.6x)*       | *12.5µs  (84.9x)*       | *1061.4µs (1.0x)* 🟠 | | `DecSize(4, 65536)`*²˒⁵* | 67.3µs (38.8x)       | 69.4µs  (37.6x)       | 73.1µs  (35.7x)       | *2386.4µs  (1.1x)*       | *14.2µs (183.8x)* 🟢 | *2609.3µs (1.0x)* 🟠 | | `DecSize(8, 65536)`*²˒⁵* | 154.4µs (37.8x)       | 166.6µs  (35.0x)       | 155.9µs  (37.4x)       | *5938.8µs  (1.0x)* 🟠 | *28.6µs (203.9x)* 🟢 | *5830.8µs (1.0x)*       | *²* Benchmark run on parallel job workers - results may vary
*³* FixedSize(workerThreads, allocSize)
*⁴* IncSize(workerThreads, allocSize) -- Makes linearly increasing allocations [1⋅allocSize, 2⋅allocSize ... N⋅allocSize]
*⁵* DecSize(workerThreads, allocSize) -- Makes linearly decreasing allocations [N⋅allocSize ... 2⋅allocSize, 1⋅allocSize]
---