Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Better symbol table type retrieval - uses parent and sibling caches #842

Conversation

markwpearce
Copy link
Collaborator

Makes use of parent and sibling type caches on SymbolTable.getSymbolType method calls.

Doesn't seem to make much difference on validate, though.

        validate@local  ---------- 40.307 ops/sec
        [email protected] --------- 103.031 ops/sec

@markwpearce markwpearce changed the base branch from master to release-0.66.0-performance-fixes July 11, 2023 19:51
@TwitchBronBron TwitchBronBron merged commit 9d9de26 into release-0.66.0-performance-fixes Jul 12, 2023
@TwitchBronBron TwitchBronBron deleted the better_symbol_table_type_retrieval branch July 12, 2023 11:56
TwitchBronBron added a commit that referenced this pull request Jul 14, 2023
* Performance fixes

* Lift `isUsedAsType` to cached expressionInfo obj

* Slightly more aggressive symbol type caching

* Cache speed boost

* Potentially solved Scope Linking  slow down (#840)

* Potentially solved Scope Linking  slow down

* Favor focused parent lookup instead of parse-time link

---------

Co-authored-by: Bronley Plumb <[email protected]>

* Make CacheVerifier more stable

* fix cross-platform benchmark bug

* Disable execSync logging

* Add specific configuration options for benchmarks at the command line (#841)

Co-authored-by: Bronley Plumb <[email protected]>

* Added package.json back

* Small optimization during symbol table linking

* Better symbol table type retrieval - uses parent and sibling caches (#842)

* Better use of cache for getting symbol types

* Adds space after function

* Prevent leaking sibling tables

* Add more benchmark padding (just cuz)

* Revert `getSymbolTypeRecursive`

* Better return type for `getScopeByName`

* Optimize buildNamespaceLookup and some string stuff

---------

Co-authored-by: Mark Pearce <[email protected]>
Co-authored-by: Mark Pearce <[email protected]>
@TwitchBronBron TwitchBronBron added this to the v1.0.0 milestone Jan 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants