title: Many small modules, or few large modules for best build performance?
body: <p>A few years ago, when first adopting gradle for Android (before Gradle 2.0), I found that there was some overhead to using and depending upon a module, so I've stayed away from splitting my project into smaller modules, and instead have created very large modules. After trying out some other build systems (like Buck for instance), performance is gained by splitting your code into multiple small modules. Some of the modern programming languages like Kotlin even have visibility modifiers specifically built around the concept of splitting your code into modules.</p>
  
  <p>We're currently at Gradle 2.14.1 (almost 3.0), and for the past several releases, they've quoted massive performance gains. With the changes to Gradle / the Android plugin the past few years, does it now produce faster builds to split your code into smaller modules, or to use fewer large modules?</p>