serenity/Userland
Michael Manganiello 56081cdb6e LibGUI: Remove Tile.date_time member from Calendar
Currently, navigating through different years in the Year view of the
Calendar app or the taskbar is very slow.
Profiling results show that almost all the time is spent in
`Calendar::update_tiles`, and specifically, in `DateTime::create` and
`DateTime::set_time`.

Performance can improve substantially if the `TZ` environment variable
is set [0], but we can improve the current code to perform better
nevertheless :^)

This diff focuses on removing the need of the `Tile` struct to require
the instantiation of a `DateTime` object, which avoids _at least_ 365
object instantiations in the Year view, on each `update_tiles` call.
Instead, as the `date_time` isn't used often, we can instantiate it on
demand when a particular date is selected.

[0] https://blog.packagecloud.io/set-environment-variable-save-thousands-of-system-calls/
2022-04-20 18:37:56 +02:00
..
Applets Userland: Always construct Application with try_create() 2022-04-18 12:57:34 +02:00
Applications AK: Add FuzzyMatch header 2022-04-20 18:34:09 +02:00
Demos Mandelbrot: Add BMP and QOI image formats as options for export 2022-04-20 08:19:25 -04:00
DevTools Userland: Always construct Application with try_create() 2022-04-18 12:57:34 +02:00
DynamicLoader Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Games Pong: Explicitly clear held keys in Game::reset() 2022-04-15 00:13:09 +02:00
Libraries LibGUI: Remove Tile.date_time member from Calendar 2022-04-20 18:37:56 +02:00
Services Userland: Always construct Application with try_create() 2022-04-18 12:57:34 +02:00
Shell Shell: Make program-based completion with no actual token possible 2022-04-18 19:53:10 +04:30
Utilities mkfifo: Add support for setting permissions with -m 2022-04-20 18:35:08 +02:00
CMakeLists.txt