Speeding JavaScript up by 25x

Hello, I am Kenichi Abe, one of the developers of Excel-like Bulk Issue Editor for JIRA.

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

Ricksoft’s Excel-like Bulk Issue Editor for JIRA can help manage 10,000+ issues and copy, paste, sort, and filter issues without impacting the JIRA server and DB server.

It’s also an application that is closed almost entirely on the client side; its behavior will depend on the performance of JavaScript.

There was a problem in which it took 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 end up in degradation. According to the famous 80/20 Pareto Principle, it is known that 80% of the time it takes to process a program is determined by 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 pressing the Start button, execute the sorting for “Excel-like Bulk 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 expand, it turned out that it took most of the time to post-process 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 was completed in 2 seconds, which used to take 50 seconds, without having to do some hectic operations such as editing algorithms.

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

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

Share this article