Skip to content

[WIP] Adds performance build guide#5096

Merged
stefanpenner merged 3 commits intomasterfrom
perf-guide
Jan 26, 2016
Merged

[WIP] Adds performance build guide#5096
stefanpenner merged 3 commits intomasterfrom
perf-guide

Conversation

@twokul
Copy link
Copy Markdown
Contributor

@twokul twokul commented Nov 13, 2015

A good place for developers to start tracking issues down.

@jonnii
Copy link
Copy Markdown
Contributor

jonnii commented Nov 13, 2015

Q

My windows builds are slow!

A

Buy a mac :trollface:

PERF_GUIDE.md Outdated
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

server -> several?

PERF_GUIDE.md Outdated
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

elaborate on differences between build types; set expectations on build times; if app doesn't meet expectations, there might be a problem; how do we identify the problem and what can tools help us with it;

PERF_GUIDE.md Outdated
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing the h in grap.<version>

@stefanpenner
Copy link
Copy Markdown
Contributor

@twokul any more time to work on this?

PERF_GUIDE.md Outdated
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what's considered a large application? Is 10 klocs or 150 klocs a large app?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One of my apps is about 200kloc js app code, and it has sub second JS change times. 400ms-600ms (with source maps disabled) about 1s with sourceMaps on. Interestingly, the kloc doesn't really matter for rebuilds (well it does for sourceMaps sorta..) largely is a function of kloc + files + filters + disk speed that decides the performance.

We have been reducing our IO footprint, reducing the impact number of files has on us. Our current state is "ok" but have another push planned for a another hefty boost here, hopefully its something we can work on towards the end of the month.

When .less changes, it spends literally 4s purely inside less... Maybe some future stef will explore performance of the css world more.

We have been working on a different sourceMap VLQ encoder/decoder which is about an order of magnitude faster. Hopefully I'll have a chance over the next week or so to integrate it into broccoli-concat.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks that makes sense. I was just curious about what small, middle, large meant for this guide. This gives us a good reference, for a similar sized app with 1.13.12 we're at ~11secs for a rebuild, which is way better than with 1.13.8, but still slow enough to break the dev flow. I'll dig later this week to see where the problem is. My guess is that it's something specific to what we're doing.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we typically see slower builds with:

  1. old plugins, static-compiler/ old jshint old broccoli-filter old XYZ etc.etc.etc.
  2. anti-virus
  3. strange custom plugins
  4. ember-browerify (I plan to work on this one this week, as my team started using it – and slowed down the build again :P)
  5. component-css addon (it needs to be fixed)
  6. likely more.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1.13.12 is also without some pretty important internal performance work, please be sure to atleast be at 1.13.13.

@stefanpenner stefanpenner force-pushed the perf-guide branch 2 times, most recently from f3544c4 to 1cd9ace Compare December 16, 2015 02:20
@stefanpenner stefanpenner mentioned this pull request Dec 30, 2015
3 tasks
twokul and others added 2 commits January 4, 2016 08:20
@stefanpenner
Copy link
Copy Markdown
Contributor

this is sufficiently useful to merge, we can continue to iterate as we have time.

stefanpenner added a commit that referenced this pull request Jan 26, 2016
[WIP] Adds performance build guide
@stefanpenner stefanpenner merged commit 5ff1c25 into master Jan 26, 2016
@stefanpenner stefanpenner deleted the perf-guide branch January 26, 2016 07:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants