Skip to content
This repository has been archived by the owner on Aug 24, 2022. It is now read-only.

Method signatures cache improvements #977

Merged
merged 3 commits into from Apr 29, 2016
Merged

Method signatures cache improvements #977

merged 3 commits into from Apr 29, 2016

Conversation

iskiselev
Copy link
Member

@iskiselev iskiselev commented Apr 29, 2016

Here i implemented caching of open generic signatures (#970) and preserving only one signature cache per signature (896).

Both features are hidden under default settings.
(1) To enable global caching for open generic signatures user should change config:
CodeGenerator.PreferLocalCacheForGenericMethodSignatures=false
(2) To enable global caching for open generic interface method signatures user should change config:
CodeGenerator.PreferLocalCacheForGenericInterfaceMethodSignatures=false
(3) To enable storing only one method signature cache per signature:
CodeGenerator.CacheOneMethodSignaturePerMethod=false

I will still work more on method calls performance improvements, as all suggested option could either increase or decrease execution time dependent on usage scenario.

For my project I get about 20% performance improvement with CodeGenerator.PreferLocalCacheForGenericMethodSignatures=false. All other settings actually have not changed measured performance of my application.

hidden under CodeGenerator.PreferLocalCacheForGenericMethodSignatures
and CodeGenerator.PreferLocalCacheForGenericInterfaceMethodSignatures settings.

Implemented caching one method signature per signature versus per method (sq#896),
hidden under CodeGenerator.CacheOneMethodSignaturePerMethod setting.

Renamed setting and inverted setting:
CodeGenerator.CacheGenericMethodSignatures -> CodeGenerator.DisableGenericSignaturesLocalCache
@kg
Copy link
Member

kg commented Apr 29, 2016

Cool, thanks for doing this. Sounds like a big improvement.

@kg kg merged commit 9bf1ba0 into sq:master Apr 29, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants