legion_prof_rs: Change Timestamp representation to save memory.
This change reduces memory usage of legion_prof_rs
on large profiles by about 17%.
Timestamp
is now stored as a NonMaxU64
. This is a special "niche-optimized" version of u64
which can never old a value of std::u64::MAX
. As a result, Option<Timestamp>
is now 8 bytes instead of 16 bytes.
Because we changed the internal representation, I also took this opportunity to protect the guts of Timestamp
so future changes are less invasive.
Edited by Elliott Slaughter