Aliaksandr Kalenik
eb210bb3af
LibWeb: Replace OrderedHashMap with page-table Vector in LayoutState
...
Each NodeWithStyle is assigned a sequential layout index during the
pre-layout tree traversal. LayoutState stores UsedValues in a
PagedStore — a two-level page table indexed by layout_index that
gives O(1) lookup via two array accesses, with pages allocated
lazily on first write. UsedValues are stored directly in pages
(Optional<T>) rather than behind heap pointers, eliminating
per-entry malloc/free calls and improving cache locality.
This cuts ensure_used_values_for() from ~14% to ~7% in profiles
on https://www.nyan.cat/ .
2026-02-23 01:13:35 +01:00
..
2026-02-02 14:36:49 +00:00
2026-02-02 14:36:49 +00:00
2026-01-18 10:10:04 +01:00
2026-01-18 10:10:04 +01:00
2026-02-22 15:07:06 +01:00
2026-02-07 12:21:16 +01:00
2026-02-02 14:36:49 +00:00
2026-02-02 14:36:49 +00:00
2025-08-29 18:18:55 +01:00
2026-02-02 14:36:49 +00:00
2026-02-02 14:36:49 +00:00
2026-02-02 14:36:49 +00:00
2026-02-02 14:36:49 +00:00
2026-02-08 18:51:13 +01:00
2026-02-14 22:50:24 +01:00
2025-11-07 16:42:32 +01:00
2025-08-22 20:26:09 +02:00
2026-02-23 01:13:35 +01:00
2026-02-14 22:50:24 +01:00
2026-02-21 21:46:34 +01:00
2026-02-21 21:46:34 +01:00
2026-02-02 14:36:49 +00:00
2026-02-02 14:36:49 +00:00
2025-11-28 18:32:48 +01:00
2025-11-05 09:11:49 +01:00
2026-02-14 16:23:18 -05:00
2026-02-14 16:23:18 -05:00
2026-02-14 16:23:18 -05:00
2026-01-12 11:00:14 +00:00
2025-09-22 15:00:50 +02:00
2025-07-28 22:46:27 +02:00
2026-02-23 01:13:35 +01:00
2026-02-23 01:13:35 +01:00
2026-02-08 18:51:13 +01:00
2026-02-08 18:51:13 +01:00
2025-06-13 15:08:26 +02:00
2025-09-12 15:34:09 -04:00
2026-02-06 10:47:50 +00:00
2026-02-06 10:47:50 +00:00
2026-02-06 10:47:50 +00:00
2025-05-14 02:01:59 -06:00
2026-02-12 10:33:09 +00:00
2026-02-12 10:33:09 +00:00
2026-02-02 14:36:49 +00:00
2026-02-02 14:36:49 +00:00
2026-02-21 15:53:22 +01:00
2026-02-23 01:13:35 +01:00
2026-02-02 14:36:49 +00:00
2026-02-02 14:36:49 +00:00
2025-07-28 22:46:27 +02:00
2026-02-02 14:36:49 +00:00
2026-01-20 12:00:11 +01:00
2026-01-20 12:00:11 +01:00
2025-09-25 21:42:52 +02:00
2025-07-09 14:36:08 +02:00
2026-02-08 18:51:13 +01:00
2026-02-05 09:00:56 +01:00
2026-01-20 12:00:11 +01:00
2026-01-20 12:00:11 +01:00
2026-01-20 12:00:11 +01:00
2026-01-20 12:00:11 +01:00
2026-02-02 14:36:49 +00:00
2026-02-02 14:36:49 +00:00
2026-02-14 22:50:24 +01:00
2026-02-03 14:47:51 +01:00
2025-11-30 11:48:14 +01:00
2025-12-24 14:10:27 +01:00
2026-02-02 14:36:49 +00:00
2026-02-02 14:36:49 +00:00
2026-02-02 14:36:49 +00:00
2026-02-02 14:36:49 +00:00
2026-02-14 16:23:18 -05:00
2026-02-14 16:23:18 -05:00
2026-02-21 05:48:53 +00:00
2026-01-22 13:52:31 +00:00
2026-02-11 20:02:28 +01:00
2026-02-11 20:02:28 +01:00
2026-02-08 18:51:13 +01:00
2026-02-08 18:51:13 +01:00