This repository was archived by the owner on Apr 14, 2022. It is now read-only.
Repository navigation
Cache function eval result per argument set - #988
Merged
Alexander Sher (AlexanderSher) merged 42 commits intoApr 19, 2019
Merged
Conversation
added 30 commits
March 1, 2019 09:51
This reverts commit 7ffc9db.
added 9 commits
April 10, 2019 15:37
| private readonly Dictionary<int, IMember> _argEvalCache = new Dictionary<int, IMember>(); | ||
|
|
||
| private IMember TryEvaluateWithArguments(IPythonFunctionType fn, IArgumentSet args) { | ||
| var name = fn.DeclaringType != null ? $"{fn.DeclaringModule.Name}.{fn.Name}" : fn.Name; |
There was a problem hiding this comment.
Yes, but it is a bug. I'll work on it right after this. All types should have declaring module, there are many many places where we would crash otherwise.
| var key = fn.DeclaringModule.Name.GetHashCode() ^ name.GetHashCode() ^ (397 * argHash); | ||
|
|
||
| if (_argEvalCache.TryGetValue(key, out var result)) { | ||
| return result; |
There was a problem hiding this comment.
Won't hash collisions here make some unrelated functions have the same evaluation?
There was a problem hiding this comment.
Functions have fully qualified names like module.class.method which should have unique hashes
Alexander Sher (AlexanderSher)
approved these changes
Apr 19, 2019
Jake Bailey (jakebailey)
pushed a commit
to jakebailey/python-language-server
that referenced
this pull request
Nov 1, 2019
* Fix microsoft#668 (partial) * Tests * Revert "Tests" This reverts commit 7ffc9db. * Exp * Limit concurrency * Concurrency limit * Drop cache after analysis * Fix regression * Fix test * Cache argument eval * Fix hash calculation * Fix exception when there is a space before triple quote * Fix exception
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Performance