performance optimizations for lookup with many items:
authorMaxim.Mossienko <Maxim.Mossienko@jetbrains.com>
Fri, 23 Apr 2010 10:37:32 +0000 (14:37 +0400)
committerMaxim.Mossienko <Maxim.Mossienko@jetbrains.com>
Fri, 23 Apr 2010 10:37:32 +0000 (14:37 +0400)
commit5e74a8b399e0f1a67b06d2f6e4989b5c4ef401dc
tree9567bcbfff732c2fa4b318f0e522b29d6c9fa59a
parentdd03a78a0d351ded419995ef14675498348e63ef
performance optimizations for lookup with many items:
- avoid expensive Class#isInstanceOf of LookupElement sublcasses #as using specialized <SpecificLookupItem> #from with explicit instanceof SpecificLookupItem
- using identity hashing for binding lookup item weights to item
java/java-impl/src/com/intellij/codeInsight/completion/CastingLookupElementDecorator.java
java/java-impl/src/com/intellij/codeInsight/completion/JavaChainLookupElement.java
java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionUtil.java
java/java-impl/src/com/intellij/codeInsight/completion/JavaSmartCompletionContributor.java
java/java-impl/src/com/intellij/codeInsight/completion/PreferSimpleWeigher.java
java/java-impl/src/com/intellij/codeInsight/lookup/PsiTypeLookupItem.java
java/java-impl/src/com/intellij/psi/util/proximity/JavaInheritanceWeigher.java
platform/lang-api/src/com/intellij/codeInsight/completion/PrioritizedLookupElement.java
platform/lang-impl/src/com/intellij/codeInsight/completion/CompletionLookupArranger.java
platform/lang-impl/src/com/intellij/codeInsight/completion/PriorityWeigher.java