Speeding JavaScript up by 25x

Hello, I am Kenichi Abe, one of the developers of Issue Editor for JIRA.

In this post, I am going to write about performance tuning that I executed in Issue Editor for JIRA. As a result of the tuning, the processing speed became 25 times faster than before!

Ricksoft’s “Issue Editor for JIRA” can download 10,000 issues and it copies, pasts, sorts and filter issues without impacting JIRA server and DB server.

It’s also an application that is closed almost all on client side, the good behavior will depend on the performance of JavaScript.

There was a problem which it takes 50 seconds to sort 10,000 issues. This time, I’ve been trying to improve JavaScript capability by using a profiler mounted in the browser.

If optimization is randomly done, good effects cannot be expected and it would ended up in degradation. According to the famous 80/20 Pareto Principle, it is known that 80% of the time that takes to process a program, is determined by the 20% of the whole code.

Let’s find out where the bottleneck is by using this profiler in the Chrome browser which is offered for free.

Open the profiler in the Chrome administrator screen and after press the Start button, execute the sorting for “Issue Editor for JIRA.” Click on the Finish button after the sorting is done. That is it. The measurement is done.

Profiler Execution Sreen: “Record JavaSript CPU Profile”

 

Sometime after the measurement is done, a profiling result analysis screen will appear.

In the pull-down menu, select “Tree (Top Down)”, and sort by “Total Time” in descending order.

As a result of watching the trees as expanding them, it turned out that it took most of the time in post-processing of features unused in the application, not the application itself.

It took only 3 minutes after the measurement started.

Profile result analysis screen : The tree nodes can be opened or closed by keyboard

As a result of solving the three discovered bottlenecks, the sorting process completed in 2 seconds, which it used to take 50 seconds, without having to do some hectic operation such as editing algorithm.

You can check this by installing “Excel like Issue Editor for JIRA” whether it is true or not. *1

*1 Duration of time for the sorting process varies depending on column types, and capabilities of client machines.

Comment

There is no comment on this post. Be the first one.

Leave a comment