-
Notifications
You must be signed in to change notification settings - Fork 30
Description
Hi,
Congratualtion first, You have a great project here and I'm a big fan for a while now!
I like to contribute to this project but before sending you PR I wanted to see if you are interested in such changes or not.
I noticed that soa-derive is using Vec<bool> for bool, which can be replaced with a bit vector for better cpu cache performance with crates like https://crates.io/crates/bitvec or https://crates.io/crates/bit-vec.
It can reduce memory usage by 8x for bool and improve performance by improving cpu cache hits.
Other possible improvement is simple enums (without holding values) can be reduced to bit for example:
enum IsOk{
Ok,
NotOk,
}this can be stored as bool which can use same bit vector treatment.
and this idea can scale to u8, u16(or maybe u2 u3 u4 u5 u6 u7 encodings).
Please let me know you think about these possible changes.