Integrated: 8283684: IGV: speed up filter application

Roberto Castañeda Lozano rcastanedalo at openjdk.java.net
Tue May 3 07:46:24 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).

This pull request has now been integrated.

Changeset: af1ee1cc
Author:    Roberto Castañeda Lozano <rcastanedalo at openjdk.org>
URL:       https://git.openjdk.java.net/jdk/commit/af1ee1cc5576c0b247c543510ca8be7e23d805f1
Stats:     113 lines in 3 files changed: 57 ins; 43 del; 13 mod

8283684: IGV: speed up filter application

Reviewed-by: thartmann, kvn

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

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


More information about the hotspot-compiler-dev mailing list