title: @angular/material barrel import cost
body: <p>Using the latest Angular &amp; CLI versions (~6.1.6), and the latest @angular/material library  (~6.4.7), I'm finding a pretty significant performance penalty when using an import from @angular/material's primary entry point (<code>public_api.ts</code>):</p>
  
  <pre><code>import { MatButtonModule }  from '@angular/material';
  </code></pre>
  
  <p>If I update the import statement to use the secondary endpoint:</p>
  
  <pre><code>import { MatButtonModule }  from '@angular/material/button';
  </code></pre>
  
  <p>My vendor bundle is reduced by ~2.6MB, and page render speed decreases by ~200ms.</p>
  
  <p>With <code>@angular/cli</code>'s tree shaking abilities, the ultimate production build size is equivalent with either import statement. As a result, I feel people often favor the development semantics of the terser import statement, not realizing/understanding the dev-time performance penalty.</p>
  
  <p><strong>Why isn't the performance penalty of 3rd party "barrel importing" discussed more? I've had a really hard time finding any documentation on the decision making process and/or performance implications of these choices.</strong></p>