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.
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.