Ember CLI is unbearably slow on my machine. For example:
Build successful - 80898ms.
Slowest Trees | Total
----------------------------------------------+---------------------
ConcatWithMaps | 33760ms
BroccoliMergeTrees | 16761ms
ES6: App Tree | 14163ms
Addon#treeFor (ember-composability - addon) | 4883ms
Slowest Trees (cumulative) | Total (avg)
----------------------------------------------+---------------------
ConcatWithMaps (4) | 33954ms (8488 ms)
BroccoliMergeTrees (5) | 16786ms (3357 ms)
ES6: App Tree (1) | 14163ms
Addon#treeFor (ember-composability - a... (1) | 4883ms
Granted, I have a rather old MacBook:
My coworkers’ machines have near instantaneous response when they make a change to our app. We figure my problem is a combination of:
low ram ( 8gb vs 16)
i5 processor (vs i7)
optical drive (vs flash memory)
It would be great if there was an accepted “minimum system requirements” listed on the Ember CLI website.
Has anyone else experienced such slow speeds? If so, did you manage to correct it without buying a new machine? I plan on getting a new MacBook soon, but until then…
Dude, that’s really bad. I think you have something else wrong. I see people reporting slowness on Windows, but never anything like this, and certainly not on OS X. I’ve seen some issues due to weird imports and re-imports … maybe you could post your ember-cli-build.js file?
I have a moderate size app (about 60K lines of app code) and my initial build time is like 10s and my rebuilds are about ~500ms. If you can provide a repo where this is reproducible, I’m sure one of the Ember-CLI guys would love to take a look.
What version of Ember-CLI are you using? Do you have any colleagues who have had this poor performance with your app on their machine?
So I created a fresh app and it only took about 12s to start up, and then 700ms to rebuild. Our app is a pretty healthy size, about 32k lines. Heres our ember-cli-build.js
/* global require, module */
var EmberApp = require('ember-cli/lib/broccoli/ember-app');
module.exports = function(defaults) {
var app = new EmberApp(defaults, {
// Add options here
});
app.import('bower_components/chartist/dist/chartist.min.js');
app.import('bower_components/chartist/dist/chartist.min.css');
app.import('bower_components/cryptojslib/rollups/sha256.js');
app.import('bower_components/cryptojslib/rollups/hmac-sha256.js');
app.import('bower_components/sweetalert/dist/sweetalert.min.js');
app.import('bower_components/sweetalert/dist/sweetalert.css');
app.import('bower_components/parsleyjs/dist/parsley.min.js');
app.import('vendor/pnglib.js');
app.import('vendor/identicon.js');
app.import('vendor/md5.js');
return app.toTree();
};
I’ve fought with this the last few months. There are a number of guys on my team and neither of them have performance like this. But then again, their machines are each less than a year and a half old.
So I followed @nightire’s advice and deleted my project and reinstalled it, thinking along the same vein of “turn the machine off and back on”. I dont know if it really helped. I have build times around 59s, 31s, and 47s for literally only adding some whitespace in a coffeescript file.
for reference, applying all the above work, has resulted in the largest app i work on 200kloc + css + addons + bower stuff to rebuild 500ms->600ms (original 10s+) MPB but with encrypted drive.
There are likely some offending plugins, if discovered we can fix them.
Broccoli-merge-tree has a big perf fix in, but it has not yet been released. Hopefully later this week(end).
So I upgraded to Ember-CLI 1.13.12 and I can definitely see the performance difference. There are times where it’ll only be around 2s to rebuild, but other times are about 20 - 40. The big difference is that now those times seems to accurately reflect rebuild times, whereas before it always seemed like it was taking even longer than that (being a bit of a nerd, I was able to play half a round of Hearthstone between rebuilds). I’m still not seeing the 500-700ms rebuild times.
I still think it has something to do with my machine, either via settings or hardware because my peers on my team have no issues. I used the different debug options listed in the WIP and, although really cool, didnt really know what to look for. There wasnt a single component, addon, etc that stood out as unusually long.