Percy Editor - JavaFx Webstorm Plugin Performance Improvement PoC

Register
Submit a solution
The challenge is finished.

Challenge Overview

Challenge Objectives

  • Webstorm plugin (JavaFX Webview) performance analysis and improvement

Project Background

We previously created a percy editor, which can run as webapp, electron app or inside a vscode or webstorm editor. 
You can find more information about it in the readme of the repo: https://github.com/standlove/percy-cake

For the webstorm plugin, we currently have two packages:

  • webstorm-javafx - it uses JavaFX webview to load the percy editor HTML page
  • webstorm-jxbrowser - it uses the JxBrowser to load the percy editor HTML page
The one uses the jxbrowser is pretty fast (its performance is similar as vscode editor, as both are using chrome internally). But the jxbrowser is not a free library. 
The one uses the JavaFX webview is a bit slow, and that's what you need to analyze and improve. 

Note that the webstorm plugin use the same generated HTML page as the vscode extension. 

Technology Stack

  • Webstorm Plugin
  • JavaFX Webview
  • Angular 7

Requirements

By playing with the webstorm-javafx extension in Webstorm, you can notice the slowness in the following items:
  • The dropdown is slow to show up - we have tried to turn off the animation in Angular app for the plugin, so it looks better now.
  • Enter text in the text input is slow - I can notice some delay when I type quickly
  • Move the split bar almost freeze the page - this is a major issue you need to investigate
  • The other user interactions on the page are a bit slower as well, please play with both JavaFX version and JxBrowser version (or the vscode version) to see the difference. 
Our requirement is to analyze the reason and try to update the Angular app to generate a HTML page that runs faster in JavaFX webview. 
 

Final Submission Guidelines

Submission Delivery
  • Analysis Report
  • Patch file containing the improvements

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30098698