Meteor 1.6 performance issue: SSR slower


#1

Just by updating my app from 1.5.2.1 to 1.6, my SSR performances on localhost went dramatically worse.

I used to have ~2000 ms of time to first paint with SSR, now up to ~10000 ms.

I am running on localhost, dev mode, on a windows 7 computer.

Why is this getting slowed down like this? Any other experiencing similar problems ?

Google lighthouse score went dramatically down as a result


#2

If you want to experience this yourself you can try and clone https://github.com/antoninadert/proto-starter
then you meteor npm install , then meteor. You can try and run the Audit tab in google inspector (lighthouse)
Then you meteor update, do the same thing, you should see consistently worse results

The time for first meaningful paint is worse than before. On a side note my defer bindings on Viewmodel do not work any more.

@manuel do you have a clue why it happened with this upgrade?


#3

Can you make a repro? I just cloned proto-starter and upgraded to 1.6, and it works as expected.


#4

I am not sure yet whether it is the defer that doesn’t work or just that the defer loads simultaneously with the other content because of the other problem (probably this).


#5

I’ll try it again and watch the time & html output.


#6

I have opened this issue https://github.com/meteor/meteor/issues/9297
But apparently Meteor team cannot reproduce. Seems to be a Windows-only problem ?


#7

Most likely a windows issue. I recommend to stop coding on Windows :smiley: you’ll see that Meteor is way faster on Linux/Mac


#8

I tried but the SSR isn’t working. Can you make a hello-world app with SSR in 1.6? (just add the bare minimum to get the SSR running)


#9

Tone doesn’t transmit well on text. You may not have meant it that way but your statement can easily be read as condescending and willfully ignorant to the situation of others.


#10

Thanks for the tip, guy :wink: doesn’t address the problem though.


#11

I do apologise if tone was perceived like that. I had so many bad experiences with coding on Windows, things exactly like this, issues that could not be reproduced, thus not getting fixed, thus wasting time, sweat and tears. Just shared my experience, not trying to offend anyone :slight_smile:


#12

I’m really puzzled how did you reach the conclusion that “his tone can easily be read as condescending”? I could read that comment thousand times and not perceive it as condescending.

He shared his personal experience and opinion about node/meteor development on windows, and I happen to agree. I personally made the switch 3 years ago just to develop on node, so it’s very valid opinion and factual recommendation for those who have the option to switch, with that said, I really hope Meteor experience solidify on Windows.

Furthermore @diaconutheodor contributed tons to the Meteor community so I think he has all the good intentions in mind. Anyway people perceive things differently, but I think people should openly and freely express their opinion when they’re not insulting or hurting others. I hope you don’t perceive my comment as condescending as well.


#13

Diaconutheodor gets it, you still don’t. It’s like someone asking “I started having this problem with my car, how can I fix it?” and your answer be “just buy a new car”… "gee I never thought of it, but now that you mention it, let me go to the dealer right now. "

Just to be clear, there’s a huge difference between “Try X, Y, Z to fix your car but it’s really old and you probably want to consider getting another” and “Just get a new car”.


#14

I don’t think your analogy hold. I came from Java to Node 2 years ago and I was using windows. I tried to install mean stack it didn’t work and I concluded that a lot of tutorials and libraries in the Node ecosystem are focusing on mac/linux so I felt forced to switch, which was frustrating but a good overall decision.

Forward two years, someone else come to this thread, conclude based on your comment that the advice to switch to Linux/Mac is “condescending” when the unfortunate truth that it’s a very logical and recommended (but undesirable) move for those who can. However I do hope that the experience improves in windows.

So yes I still don’t perceive it as condescending :slight_smile: . Anyway I don’t think I’m doing any service to the original author, and I don’t want to come across as argumentative, so I’ll end it here.


#15

Hahaha guys you make me laugh.

Well I made some more experiments and I updated my results on this github issue

To recap: this problem is because I run the SSR in universal router’s resolve callback. And it is very likely this is because of the new server-render package that this issue appeared.

As to answer to all of you: I believe as long as Windows is officially supported it should work as well on Windows.
That being said, I am open to develop on other OS and I know the benefits for node, but as @manuel said I don’t want to buy a new machine just for that.


#16

That’s great! I agree buying a mac just for node is ridiculous, it’s really expensive machine.

Anyhow, more importantly, and the million dollars question…did you perceive any comment on this thread as condescending ? just joking :wink:


#17

No, but that may be because I am not a butthurt :smiley:


#18

Hello everyone, I kept having problem with SSR: universal-router and server-render@0.2 don’t play well together.

For me the problem comes from server-render package because if I use the old version it worked perfectly.

The problem is so bad that it removes almost all the benefits of doing SSR (the time to first paint is the same as the time to interactive = when javascript is loaded)

I made a simplest repro here: https://github.com/antoninadert/basic-meteor-react-ssr

If you want to experiment the problem, clone the repo and checkout the ‘minimal’ branch.
Then run it and Audit it with chrome inspector: notice the difference between time to first paint and time to interactive.

Then update meteor and do the same test on 1.6:

I now have a Mac and I reproduced it on both Mac and Windows consistently, so the problem was not even Windows !