Facebook adds new open source features for Android programmers and significantly modifies Buck!

Facebook adds new open source features for Android programmers and significantly modifies Buck!

Facebook is improving its open source performance build tool Buck to speed up development and minimize the time needed to test code changes in Android apps.

[[209513]]

Buck aims to speed up and increase build repeatability, provide correct incremental builds and help developers understand dependencies. The company first open sourced the solution in 2013.

"We have been steadily improving Buck's performance, and more and more other organizations have adopted Buck and made contributions. However, these improvements are inherently incremental and based on long-standing assumptions about how software is developed," Facebook software engineer Jonathan Keljo wrote in a post. Facebook is questioning these core assumptions, which led us to a deep understanding of the nuances of the Java language and the Java compiler.

According to Keljo, the team has completely redesigned the way Buck compiles Java code in order to provide Android engineers with new performance improvements.

The solution also introduces rule pipelining, which Keljo said is designed to reduce bottlenecks, and increase parallelism to reduce build times by 10 percent.

Buck is usually able to build multiple rules in parallel. However, bottlenecks do exist. If a commonly used rule takes a while to build, its other dependencies must wait, and even a small rule can cause a bottleneck on a system with a high enough core count.

Rule pipelining now allows dependent rules to be compiled while the compiler still completes the dependencies. This feature is now available in open source, but is not turned on by default.

The company also announced that source code-only stub generation flattens the dependency graph and reduces build times by 30%. Flattened graph generation is faster due to increased parallelism, as there are shorter paths that need to be checked for changes.

<<:  A brief discussion on iOS screen adaptation practice

>>:  iPhone X screen burn-in problem finally solved: it can effectively avoid

Recommend

Can these 6 truths save your sleep?

Do you remember when you first suffered from inso...

In Colorado, “footprints” from the dinosaur era were discovered?

Author: Duan Yuechu and Huang Yanhong Near Rangel...

Top 10 Brand Creative Case Studies in 2021

As the final chapter of the year-end review, this...

Throw away the controller! Humans are not far from gesture-controlled VR

The controller, as the most critical touch contro...

After losing 500,000 yuan in an event, I learned 4 "bloody" lessons

In recent days, a marketing director left a messa...

Group buying community operation and traffic generation techniques!

This article mainly discusses various methods of ...

Building forest "grain depot" to make China's rice bowl more "abundant"

At present, my country's forest area is 231 m...

The most comprehensive Baidu keyword mining method!

Method 1: Use Baidu products to mine long-tail ke...

How to carry out refined promotion of mobile advertising?

What is mobile advertising? Mobile advertising re...

Chrome 64 beta released: goodbye pop-ups and illegal redirects

Last week, Chrome 63 was officially released to a...

Is your body exhausted? A table to calculate your fatigue index

Do you have the following symptoms? Your head fee...