From Over an Hour to Under 3 Minutes.  Yes, Really!

race-car-acceleration

In our current rush for digital transformation, doing things faster – like builds – is generally a good thing.  But what if it was possible to predict or even control the amount of time a build could actually take? 

You could make sure your development team confidently does builds in a few minutes – no matter the build size – to keep your transformation on schedule.  Your team’s ping pong skills may suffer, but your customers and investors will appreciate the time savings.

Previously, we wrote about how ElectricAccelerator can eliminate build bottlenecks and how Shared JobCache speeds builds and eliminates errors through intelligent component reuse.  In this post, we will use the Insight feature of ElectricAccelerator to take a build time from over an hour down to under 3 minutes – and to ensure that sub-3 minute time is maintained even as the build grows. One of our customers provided the data for this example.

A Day in the Life of a Build

Here’s where we’re supposed to insert the proviso that “your mileage may vary,” but this example is typical of what our customers report when they use ElectricAccelerator.

1 hour, 10 minutes

The customer was running the build serially with GNU make and it was taking an hour and 10 minutes on average to complete – when it did complete.  Many times it wouldn’t complete at all or the resulting code wouldn’t execute.

43 minutes, 49 seconds

We ran that build the first time in parallel across 10 cores with ElectricAccelerator.  We made no other modifications and the build completed in just under 44 minutes – an improvement of nearly 40% on its own.  That’s an impressive improvement in its own right but that is still too much time at the ping pong table.

During this first pass through, ElectricAccelerator was ‘learning’ the build and creating an extensive amount of meta data: understanding dependencies, dealing with conflicts, and automatically reverting those conflicts to ensure the build completed successfully.

This screen shot from the ElectricAccelerator Insight feature shows lots of gaps in the process, the parallelism didn’t line up, and conflicts abound.  At least the build succeeded.

electricaccelerator-insights-graph

It built – but inefficiencies and conflicts abound!

As you can see, there were nearly 800 unspecified dependencies in the build that caused extensive rework.

800-build-dependencies

Under 45 minutes – but nearly 800 unspecified dependencies!

Some Basic Magic

But we can do better without doing anything other than running the build again.

4 minutes, 57 seconds

This is where the magic of ElectricAccelerator and its patented technology starts to happen.  We ran the build a second time.  ElectricAccelerator used that meta data to automatically optimize dependencies, the schedule and resources, and eliminate unspecified dependencies to cut that build time to less than 5 minutes!

electricaccelerator-insights-graph-2nd-run

Running a build the second time with ElectricAccelerator eliminates inefficiencies and conflicts

Notice how there are now no gaps in the process and the parallelism across cores aligns almost perfectly.  ElectricAccelerator automatically made sure that there was no idle time, no conflicts, and no reverts necessary.

electricaccelerator-under-5-min-no-conflicts

Under 5 minutes – and no conflicts.

Now For the REAL Magic

Could we do better?

If going from over an hour to under 5 minutes wasn’t magic enough, we can get that build time down further – and to a time of our choosing – by using Insight to simulate the build across any number of additional cores and choose our own build time.

electricaccelerator-insights-simulator-graph

Predicting and controlling build times across multiple cores

2 minutes, 38 seconds

The example build was run locally on 10 cores but Insight shows what will happen if you increase the number of cores for the build.  If 3 minutes is long enough for your developers to take a bio break and grab a snack, then distributing the build across 20 cores will mean the build will complete in just about 2 ½ minutes.  Those cores can be anywhere on your network: other computers in the group, in your server farm, or even in the cloud.  ElectricAccelerator will distribute your build to those cores to guarantee the quality of service for your development team.

Insight Doesn’t Stop There

Not only does Insight give you the great visualization and feedback tools as the above screen shots illustrate, you can click on any element in the display to drill down for details on dependencies, input, output, files, duration and more.

electricaccelerator-insights-build-details

Drilling into the details of a build

Know Where You’re Going

yogi-berra

Yogi Berra once said, “If you don’t know where you’re going, you’ll end up someplace else.”

ElectricAccelerator with Insight lets you know exactly where you’re going with your builds and what time you’ll get there.  So much for ping pong.

 

 


banner_huddle_free-build-accelerationAccelerate your Android Builds for free

Learn More about ElectricAccelerator and Download ElectricAccelerator Huddle Now!

Mohan Dattatreya

Mohan Dattatreya

General Manager, Acceleration Solutions at Electric Cloud
Mohan is responsible for product management, product delivery & strategy for Acceleration solutions at ElectricCloud. Mohan brings over 20 years of leadership experience in delivering innovative products at startups as well as at large companies. Prior to joining Electric Cloud, Mohan held leadership roles at Nortel Networks, Tasman Networks, SeriousEnergy and Cisco Systems.

Mohan holds a M.S in Computer Science from Stanford University and an MBA from Santa Clara University.
Mohan Dattatreya

Share this:

Leave a Reply

Your email address will not be published. Required fields are marked *

Subscribe

Subscribe via RSS
Click here to subscribe to the Electric Cloud Blog via RSS

Subscribe to Blog via Email
Enter your email address to subscribe to this blog and receive notifications of new posts by email.