RFR: 8260581: IGV: enhance node search

Roberto Castañeda Lozano rcastanedalo at openjdk.java.net
Fri Jan 29 14:11:52 UTC 2021


Apply several enhancements to the quick node search functionality: 

- Allow users to search by node id or name by default, instead of name only.
- Show partial matches when searching for a specific property (e.g. so that searching "type=con" lists all "control"-type nodes).
- Avoid showing the "All _N_ matching nodes" entry if there is a single match, or the user is searching a numeric value.
- Rank matches so that full matches are listed first, followed by matches at the beginning of the partially matched value, followed by the rest of matches in increasing size of the partially matched value. For example, searching "5" on a set of nodes with labels {"5 AddI", "25 AddL", "253 AddL", "554 MulI"} should list the matches as follows:
    1. **5** AddI
    2. **5**54 MulI
    3. 2**5** AddL
    4. 2**5**3 AddL

As an illustration of some of these enhancements, this screenshot shows the behavior of the quick node search functionality before the changes:

![search-before](https://user-images.githubusercontent.com/8792647/106283438-374ba500-6242-11eb-8ef4-d18117eabcbb.png)

and after:

![search-after](https://user-images.githubusercontent.com/8792647/106282880-7e856600-6241-11eb-8cb5-48fae5582cc2.png)


Tested manually on small and large (~10000 nodes) graphs. Thanks to Christian Hagedorn for feedback on several iterations of the enhancements.

As part of the review, please evaluate not just the code changes but also the usability.

-------------

Commit messages:
 - Avoid registering search results needlessly
 - Revert "Make it possible to disable 'Recent Searches'"
 - Make it possible to disable 'Recent Searches'
 - Rank quick search results
 - Show 'All N matching nodes' entry only if relevant
 - List suggestions for partial property matches as well
 - Update copyright headers
 - 8260581: IGV: search on node labels by default instead of name only

Changes: https://git.openjdk.java.net/jdk/pull/2285/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2285&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8260581
  Stats: 79 lines in 3 files changed: 55 ins; 5 del; 19 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2285.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2285/head:pull/2285

PR: https://git.openjdk.java.net/jdk/pull/2285


More information about the hotspot-compiler-dev mailing list