jiff/src
Andrew Gallant 1d66fa9e68 perf: do a ton of optimizations
The big ones here are:

1. Using Neri-Schneider to convert to-and-from Unix epoch days.
2. Add a bit set to `Span` to make it cheap to determine which units
   are non-zero. We then use this bit set to enable fast paths in
   routines that do arithmetic with `Span`.

There's a host of other junk here too. For example, `Timestamp::series`
now converts its `Span` to a `SignedDuration` and uses that to do
arithmetic instead of `Span`. And adding a `SignedDuration` to a
`Timestamp` is now faster because we avoid doing redundant checks by
skipping `Timestamp`'s constructor.

... and a lot more of that in a similar vein.

This overall results in better performance than both `chrono` and `time`
in *most* cases.

Fixes #235, Fixes #255
2025-02-16 15:50:26 -05:00
..
civil perf: do a ton of optimizations 2025-02-16 15:50:26 -05:00
fmt perf: do a ton of optimizations 2025-02-16 15:50:26 -05:00
tz perf: do a ton of optimizations 2025-02-16 15:50:26 -05:00
util perf: do a ton of optimizations 2025-02-16 15:50:26 -05:00
duration.rs perf: do a ton of optimizations 2025-02-16 15:50:26 -05:00
error.rs perf: do a ton of optimizations 2025-02-16 15:50:26 -05:00
lib.rs perf: do a ton of optimizations 2025-02-16 15:50:26 -05:00
logging.rs first substantial commit 2024-07-21 20:15:13 -04:00
now.rs tz: add support for the Android platform 2025-01-12 15:38:41 -05:00
signed_duration.rs perf: do a ton of optimizations 2025-02-16 15:50:26 -05:00
span.rs perf: do a ton of optimizations 2025-02-16 15:50:26 -05:00
timestamp.rs perf: do a ton of optimizations 2025-02-16 15:50:26 -05:00
zoned.rs perf: do a ton of optimizations 2025-02-16 15:50:26 -05:00