4commerce-technologies-AG / meteor

This is a fork of Meteor.js to support not yet official enabled architectures with an universal bundler. Meteor is an ultra-simple, database-everywhere, data-on-the-wire, pure-Javascript web framework. Read additional information about this fork at:
http://meteor-universal.tumblr.com/
Other
195 stars 16 forks source link

Why so slow? #43

Closed Floyd25 closed 8 years ago

Floyd25 commented 8 years ago

Not really an issue, but I did not know where to ask this question:

I installed the latest 1.2.1 release and also a git checkout-version of the universal meteor on my Beaglebone Rev C. Problem is: It's working, but it's crawling, it's slow. Just a after a fresh install and doing "meteor --version" for the first time, which installed missing modules I did

meteor create hello-world

This command is running since maybe 45 minutes now. I'm new to meteor and especially meteor on arm, but is that kind of performance normal and to be expected?

TomFreudenberg commented 8 years ago

Hi @Floyd25,

thanks for posting here.

Running meteor --version for the first is a slow process which will take from machine to machine times up to 30 minutes.

Running next time meteor command are normally faster - not as fast as on work stations but ok.

What you are describing is unusual to me. What happens if you give it a next try? Again 45 minutes?

I would advise you to check your linux installation and !!! SD-Card. Maybe the Card has a problem or isn't a fast one. Do you have created some swap space?

I guess this problem is more located on your board / components than to meteor on ARM devices.

It would be great, if you have a chance to change you SD-Card once, please try a good and fast one.

Thanks for some more reporting of your experiences.

Cheers Tom

Floyd25 commented 8 years ago

Hi Tom,

thx for the quick answer. I did a fresh install (Debian Jessie) with a new installation of meteor. The Beaglebone Black comes with integrated eMMC-Flash storage so the problem can't be a bad SD-Card. This is what I did:

root@beaglebone:~/meteor# time ./meteor --version It's the first time you've run Meteor from a git checkout. I will download a kit containing all of Meteor's dependencies. ######################################################################## 100,0% Installed dependency kit v0.5.16 in dev_bundle.

meteor: updating npm dependencies -- meteor-deque... babel-compiler: updating npm dependencies -- meteor-babel... ecmascript-runtime: updating npm dependencies -- meteor-ecmascript-runtime... promise: updating npm dependencies -- meteor-promise... ddp-client: updating npm dependencies -- faye-websocket, permessage-deflate... npm-mongo: updating npm dependencies -- mongodb... logging: updating npm dependencies -- cli-color... xmlbuilder: updating npm dependencies -- xmlbuilder... Unreleased, running from a checkout at 5dbffc4 (grafted, HEAD, origin/release-1.2.1-universal, origin/HEAD, release-1.2.1-universal)

real 22m31.537s user 14m41.070s sys 1m57.630s root@beaglebone:~/meteor# time ./meteor --version Unreleased, running from a checkout at 5dbffc4 (grafted, HEAD, origin/release-1.2.1-universal, origin/HEAD, release-1.2.1-universal)

real 0m22.073s user 0m18.500s sys 0m1.810s root@beaglebone:~/meteor# time ./meteor --version Unreleased, running from a checkout at 5dbffc4 (grafted, HEAD, origin/release-1.2.1-universal, origin/HEAD, release-1.2.1-universal)

real 0m21.402s user 0m18.260s sys 0m1.780s root@beaglebone:~/meteor# time ./meteor --version Unreleased, running from a checkout at 5dbffc4 (grafted, HEAD, origin/release-1.2.1-universal, origin/HEAD, release-1.2.1-universal)

root@beaglebone:~/meteor# time ./meteor --version Unreleased, running from a checkout at 5dbffc4 (grafted, HEAD, origin/release-1.2.1-universal, origin/HEAD, release-1.2.1-universal)

real 0m21.722s user 0m18.580s sys 0m1.770s root@beaglebone:~/meteor# time ./meteor create demo-app ^C

real 31m57.646s user 9m10.250s sys 1m43.940s

TomFreudenberg commented 8 years ago

Hey @Floyd25

thanks for doing the complete procedure. I am not sure how fast eMMC is working, no experiences yet.

The timings until meteor create are looking ok- not really fast but ok.

Whats happend when running time ./meteor create second-demo-app again?

Same time ~32 minutes?

Do you have the chance to run the board once via a SD-Card? Would be very interesting to see what is happen then.

Thanks Tom

TomFreudenberg commented 8 years ago

Floyd, you also may check the discussion here on meteor forum about unix benchmarks.

See: https://forums.meteor.com/t/amazon-aws-vs-other-vpss/12391/11?u=tomfreudenberg

Maybe you also run the test once on your board (with emmc and / or sd-card)

Floyd25 commented 8 years ago

I think it's all CPU-related. "meteor create ...." is running node and this leaves me at 95% CPU usage the whole time. I did run a second test on the SD-Card and got nearly the same results.

TomFreudenberg commented 8 years ago

I checked for some benchmarks which do not show good performances on beagle overall? I have no experience with that board - I am sorry.

But it is looking for more than just CPU - also Write Performance

bildschirmfoto 2016-04-12 um 16 16 14

bildschirmfoto 2016-04-12 um 16 16 33

Screens are taken from: https://www.bitblokes.de/2015/02/raspberry-pi-2-benchmark-test-grosse-steigerung/

Floyd25 commented 8 years ago

Yes, I saw those too. Maybe I should recompile de dev_bundle with optimized settings for the ARM-Cortex to see if that does help in any way. Thanks for your help!

TomFreudenberg commented 8 years ago

I do not think that will get much success from recompiling. There are not so much settings / options you can work with.

Question is: Why did you choose the beaglebone? What were the advantages of that device for you?

And: Do you need to develop on beaglebone or is this just the device to run your software afterwards?

TomFreudenberg commented 8 years ago

Hi @Floyd25

I am closing this issue but please feel free to continue the discussion here about beaglebone performance. I am always open if you need help or feedback.

Tom