netbeans icon indicating copy to clipboard operation
netbeans copied to clipboard

Unused in package hint: optimize used-in-package scenario

Open mbien opened this issue 7 months ago • 0 comments

By assuming that most code is used, we can focus on the scenario where an Element is used in a package local file and cache it.

This avoids having to repeatedly scan the package for usage.

The not-used case is not cached, this allows a much simpler impl.

  • main change is in UnusedDetector
  • second commit is for cleanup in SemanticHighlighterBase and related files, some logging improvements

before:

INFO [org.netbeans.modules.java.editor.semantic.SemanticHighlighter]: Semantic 2,431 netbeans/ide/parsing.indexing/src/org/netbeans/modules/parsing/impl/indexing/RepositoryUpdater.java@f8531b5d:5c29964c
INFO [org.netbeans.modules.java.editor.semantic.SemanticHighlighter]: Semantic 2,709 netbeans/ide/parsing.indexing/src/org/netbeans/modules/parsing/impl/indexing/RepositoryUpdater.java@f8531b5d:5c29964c
INFO [org.netbeans.modules.java.editor.semantic.SemanticHighlighter]: Semantic 1,913 netbeans/ide/parsing.indexing/src/org/netbeans/modules/parsing/impl/indexing/RepositoryUpdater.java@f8531b5d:5c29964c
INFO [org.netbeans.modules.java.editor.semantic.SemanticHighlighter]: Semantic 1,967 netbeans/ide/parsing.indexing/src/org/netbeans/modules/parsing/impl/indexing/RepositoryUpdater.java@f8531b5d:5c29964c
INFO [org.netbeans.modules.java.editor.semantic.SemanticHighlighter]: Semantic 2,530 netbeans/ide/parsing.indexing/src/org/netbeans/modules/parsing/impl/indexing/RepositoryUpdater.java@f8531b5d:5c29964c

after:

INFO [org.netbeans.modules.java.editor.semantic.SemanticHighlighter]: Semantic 793 netbeans/ide/parsing.indexing/src/org/netbeans/modules/parsing/impl/indexing/RepositoryUpdater.java@f8531b5d:44f9b9b
INFO [org.netbeans.modules.java.editor.semantic.SemanticHighlighter]: Semantic 412 netbeans/ide/parsing.indexing/src/org/netbeans/modules/parsing/impl/indexing/RepositoryUpdater.java@f8531b5d:44f9b9b
INFO [org.netbeans.modules.java.editor.semantic.SemanticHighlighter]: Semantic 80 netbeans/ide/parsing.indexing/src/org/netbeans/modules/parsing/impl/indexing/RepositoryUpdater.java@f8531b5d:44f9b9b
INFO [org.netbeans.modules.java.editor.semantic.SemanticHighlighter]: Semantic 136 netbeans/ide/parsing.indexing/src/org/netbeans/modules/parsing/impl/indexing/RepositoryUpdater.java@f8531b5d:44f9b9b
INFO [org.netbeans.modules.java.editor.semantic.SemanticHighlighter]: Semantic 78 netbeans/ide/parsing.indexing/src/org/netbeans/modules/parsing/impl/indexing/RepositoryUpdater.java@f8531b5d:44f9b9b

test case is RepositoryUpdater.java; each log event is a code modification. Performance improves once caches fill.

mbien avatar May 23 '25 01:05 mbien