Incredibly frustrating Build time


#1

I am fairly new to client side javascript application and I zero-ed on Emberjs for its eco-system. I am observing incredible poor build time performance. I tried to install ember-cli-windows but since, I cannot have administrator access because of corporate policy, I wasn’t able to change the execution policy. I am looking for an alternative.

Here are some of my information:

ember -v
ember-cli: 2.4.3
node: 4.3.1
os: win32 x64

and here are the ember-cli output:


Build successful - 373970ms.

Slowest Trees                                 | Total
----------------------------------------------+---------------------
BroccoliMergeTrees                            | 47381ms
SourceMapConcat: Concat: Test Support JS      | 34535ms
Funnel: Funnel (testLoader)                   | 26246ms
SimpleConcat: Concat: Test Support CSS        | 24328ms
TreeMerger (stylesAndVendor)                  | 20260ms
TreeMerger (appJS  & processedEmberCLITree)   | 20076ms

Slowest Trees (cumulative)                    | Total (avg)
----------------------------------------------+---------------------
BroccoliMergeTrees (15)                       | 50235ms (3349 ms)
SourceMapConcat: Concat: Test Support JS (1)  | 34535ms
Funnel: Funnel (testLoader) (1)               | 26246ms
SimpleConcat: Concat: Test Support CSS (1)    | 24328ms
Funnel (14)                                   | 23218ms (1658 ms)
TreeMerger (stylesAndVendor) (1)              | 20260ms
TreeMerger (appJS  & processedEmberCLI... (1) | 20076ms

GET /assets/bootstrap.css.map 404 26.591 ms - 42
file changed application\template.hbs

Build successful - 473421ms.

Slowest Trees                                 | Total
----------------------------------------------+---------------------
Funnel: Funnel (bower)                        | 44236ms
Funnel: Funnel
bower_components/ember-q... | 28537ms
TreeMerger (appJS  & processedEmberCLITree)   | 28341ms
TreeMerger (stylesAndVendor)                  | 26510ms
SimpleConcat: Concat: Vendor Styles/assets... | 25887ms
SourceMapConcat: Concat: App                  | 25844ms
SassCompiler                                  | 25127ms
SourceMapConcat: Concat: Vendor /assets/ve... | 24229ms

Slowest Trees (cumulative)                    | Total (avg)
----------------------------------------------+---------------------
Funnel (14)                                   | 58762ms (4197 ms)
Funnel: Funnel (bower) (1)                    | 44236ms
Funnel: Funnel
bower_components/emb... (1) | 28537ms
TreeMerger (appJS  & processedEmberCLI... (1) | 28341ms
TreeMerger (stylesAndVendor) (1)              | 26510ms
SimpleConcat: Concat: Vendor Styles/as... (1) | 25887ms
SourceMapConcat: Concat: App (1)              | 25844ms
SassCompiler (1)                              | 25127ms
SourceMapConcat: Concat: Vendor /asset... (1) | 24229ms
BroccoliMergeTrees (15)                       | 23939ms (1595 ms)

GET /assets/bootstrap.css.map 404 29.693 ms - 42

#2

Could you use some kind of virtual machine maybe? Like Virtual Box and/or Vagrant? Probably, if you cannot ease the file access restrictions with ember-cli-windows, than an ubuntu virtual machine could be a solution.


#3

The problem is not ember itself, but rather node/npm.


#4

How does the ember-cli work? I cannot find the document and I will slowly deep dive into ember-cli code-base. In what way, node/npm is a bottle-neck?


#5

Even to install Virtual Box, one need to have an administrator access. So, Virtual Box solution is out for me. It is quite restricted. One thing, I noticed that there were so many files under ./tmp. I deleted all the files under /tmp assuming that it will improve the performance but it didn’t. So, I have shifted my development to a unix host machine. Thanks to Atom Editor’s remote-edit plugin, I am able to do development as if I am working on my local host. However, this plugin has its limitation but still good. This solution is not a great solution but it is working for me now.


#6

Without elevated rights npm cannot create symlinks and instead has to copy everything back and forth.