RFR: 8283684: IGV: speed up filter application

Tobias Hartmann thartmann at openjdk.java.net
Mon May 2 08:09:41 UTC 2022


On Fri, 1 Apr 2022 10:19:21 GMT, Roberto Castañeda Lozano <rcastanedalo at openjdk.org> wrote:

> This change improves view creation time by creating a single JavaScript engine shared among all filters, rather than creating an engine every time a filter is applied. Since creating a JavaScript engine is a costly operation, this change speeds up view creation substantially for small and medium-sized graphs as soon as any filter is applied. This includes the default IGV configuration, where the "Color by category" filter is enabled.
> 
> #### Testing
> 
> ##### Functionality
> 
> - Tested manually applying different filter subsets and differing on a small selection of graphs, for JDK 11 and 17 (which use different versions and ways of packaging the JavaScript engine).
> 
> - Tested automatically viewing thousands of graphs with different subsets of filters enabled (by instrumenting IGV to view graphs as they are loaded and running `java -Xcomp -XX:-TieredCompilation -XX:PrintIdealGraphLevel=4`).
> 
> ##### Performance
> 
> Measured the view creation time for the default sea-of-nodes view on a selection of 94 medium-sized graphs (200-493 nodes) for different subsets of filters. Before the change, the view creating time increases roughly linearly with the number of applied filters (since an engine is created for each filter application). After the change, the view creating time remains roughly constant (even slightly decreasing) as the number of applied filters increases, yielding an average speedup of 2.4x for the default IGV configuration, and up to 8.2x when five filters are applied. The speedup is expected to diminish for larger graphs where engine creation does not dominate view creation time. The complete results are [attached](https://github.com/openjdk/jdk/files/8396784/performance-evaluation.ods) (note that each measurement in the sheet corresponds to the median of ten runs).

Looks good.

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

Marked as reviewed by thartmann (Reviewer).

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


More information about the hotspot-compiler-dev mailing list