fix: improve the performance of Meteor on Windows 10 and newer #13203
fix: improve the performance of Meteor on Windows 10 and newer #13203nachocodoner merged 8 commits intometeor:release-3.0.3from
Conversation
20ecf66 to
117dc84
Compare
✅ Deploy Preview for v3-meteor-api-docs canceled.
|
✅ Deploy Preview for v3-migration-docs canceled.
|
|
Hey @ayewo, the PR looks good, so I'm approving it. But before merging it, I'll ask @nachocodoner for help testing everything here. Also, could you benchmark |
|
@denihs awesome, thank you!
Okay. I have a lot on my plate right now so probably wont be able to find time to do that until next week at the earliest. |
|
@ayewo: Your detailed report is impressive; thank you for inspiring us with such detailed insight into your process of improving Windows performance. While this PR will significantly improve Meteor installation performance, the overall command execution time remains unchanged if understood correctly. I don't know if originally this issue wants to get more gains into other processes, like creating a meteor app. However, it's important to note what you mentioned in your report, that Windows Defender can slow down all Meteor processes, so disabling it could provide additional gains. There may also be options within the Meteor tool itself to enhance performance further and affect meteor tool commands like Great work, we can include this fix in our upcoming release, version 3.0.3. |
There was a problem hiding this comment.
Approve as a change to improve the Meteor installer speed on Windows.
This was my test on the npm installer. Just uninstalled Meteor, removed lines that require -g option and run Measure-Command { node install.js }. It went from 106 seconds down to 47 seconds with the changes on this PR. 🚀
|
Would it be possible to tag a special release for this to test on Windows rather than me just cloning the PR? I'd love to be able to |
@ayewo Correct me if I am wrong. But, will the rest of tools be affected by this change? It doesn't as far as I understand. Maybe with the trick of the Windows Defender disabled, @wreiske can experience already gains with his current setup, but it won't expect anything else from this change as it only affects to |
@nachocodoner You are absolutely correct: this change only affects installation. It will not impact the other meteor commands. I don't think disabling Windows Defender completely is an option for him which is why I explored adding folder and process exclusions to Windows Defender mitigate its interference. |
|
@nachocodoner BTW, thanks for the effusive praise 😊. |
For the sake of the bounty, I was really hoping for the The amount of detail in and time in @ayewo 's report alone IMO should be compensated, but I can't seem to If someone can help improve the rest of the tools timings, e.g. the general every day using of meteor for development on windows, I am willing to create a new bounty specifically for those pieces, or possibly keep this bounty open as it's not fully resolved and figure out how to compensate @ayewo for resolving the first issue (installation time). To clarify, @ayewo , thank you for your effort in improving the performance of getting started (installing meteor), and your incredible detail on why the other commands are slow. I don't want to close the bounty as fully resolved because there are still issues with performance as detailed on the original bounty success criteria. I 100% appreciate and value your time and would like to compensate you for it. If you are able to provide another method for me to send a TIP since algora on the meteor repo doesn't seem to be working, I am happy to do that & keep this bounty open. If you complete the other tool fixes, I will make sure the additional $500 on top of the $250 ($750 total) is credited to you. |
|
Hi @wreiske. We just added the tip for you, it should now appear on your bounty board. Cheers! |
|
🎉🎈 @ayewo has been awarded $250! 🎈🎊 |
|
Hi @wreiske, First off, thanks for the kind words!
I totally understand your frustration but as I explained in the report, those commands are at the heart of Meteor. Optimizing them is a significant amount of work that wouldn't quite fit within a $500 bounty, which is why I tried to quantify how much of the slow down was due to Windows Defender. It turned out to be quite significant which is why my solution dwells on adding process and folder exclusions to Windows Defender to try to keep the antivirus happy. If you look at the benchmarks, the run times with Windows Defender disabled (i.e. the column titled Windows (Defender❌)) versus Windows Defender enabled but with process and folder exclusions in place (i.e. the column titled Windows (Defender✔️)) were slowly converging. But ... the last cell on the bottom right is conveniently empty. Well, that's because I also met the exact issue you clearly articulated here. Since the issue is fairly reproducible and has in fact been reported before, I need to dig deeper to figure out the root cause so I can fix it once and for all. Unfortunately, I have so much on my plate right now that I haven't been able to take a deeper look.
I appreciate the gesture, thanks 🙏. With respect to the tip command not working, it tends to happen occasionally. |
@ayewo , I agree - After looking at your in-depth report, the work is worth well over the $500 bounty to dive into the full performance improvements. I would like to pay out the full bounty to you, as my experience working with Meteor 3.1.1 on Windows has been greatly improved from your additions to the project. I followed the documentation here, https://docs.algora.io/bounties/workflow#pay-out-a-claim but there doesn't seem to be a reward button. Can someone help point me in the right direction to get this reward paid out? Thank you again for all of your hard work on this bounty. |
|
/reward @ayewo |
|
@algora-pbc - can you help? Thank you! |
|
@wreiske thanks! Perhaps you could try the command: The full list of GitHub commands are here: https://docs.algora.io/commands |
|
/approve |


This PR intends to close #12935.
It could probably be characterized as a 🕷 bug fix of sorts rather than a performance fix because even though Meteor on Windows is plagued mainly by two things:
my PR focuses more on mitigating the effects of Windows Defender.
Mitigating the effects of Meteor's UNIX-style design would require a significant refactoring of the code base.
Reproduction Repo
Based on my explanation above and following the guidance laid out in CONTRIBUTING, it made more sense to include my changes in a separate repo instead of trying to cram them here:
Summary
Overall, I believe this PR meets all of the Success Criteria:
/claim #12935