Improve performance via update ObjectStructure and gc - #1676
Merged
Merged
Conversation
hasNonAtomicPropertyName was set when the key had an atomic string instead of when it lacked one, so ObjectStructureWithoutTransition's "has non-atomic names" flag never reflected reality for objects built via this constructor, forcing lookups onto the slower comparison path regardless of the actual key set. Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
…table PropertyNameMapWithCache previously wrapped a tree-based PropertyNameMap storing a full copy of every key alongside its index, plus a one-entry front cache for the last lookup. Replace it with a flat open-addressing table of bare property indices (sized to 1/2/4 bytes depending on the structure's property count) built directly over the existing ObjectStructureItemVector, plus a bounded dense region for small array indices. The bucket storage holds only integers, so it is GC_MALLOC_ATOMIC and not scanned, and there is no second copy of the keys to keep in sync. Since this cache is now cheaper to build and rebuild, lower ESCARGOT_OBJECT_STRUCTURE_ACCESS_CACHE_BUILD_MIN_SIZE from 512 to 64 so more structures take advantage of it sooner; tuned empirically, re-measure if a better value is found. Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
The checkout had drifted to a later commit on icu's main branch, mismatching the release-78.1 tag documented in .gitmodules and build/VendoredICU.cmake as the pin matching CI's Linux ICU version. Signed-off-by: Seonghyun Kim <sh8281.kim@samsung.com>
bbrto21
approved these changes
Sep 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.