-
Notifications
You must be signed in to change notification settings - Fork 480
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comparison with other node version manager #26
Comments
Hi! I'm not sure about |
I'd love to see a benchmark that includes n. It's my current go-to, and while I love trying new things... you know how that goes. I believe that n is actually quite fast, so very curious how fnm compares. |
Yes. Would also like to see some comparison. Currently using the fish-nvm, whose previous name also happened to be 'fnm'(fish node manager)😂 |
That would be great. I hope I'll have the time to do some scientific benchmarks soon. I want to merge the multi-shell feature first 😄 |
At least it's not a bash alias like nvm 😄 |
Let's not bash nvm... 😉 but really, nvm's a great product 😄 |
Hehe yes indeed, but getting it to work inside a Docker container can be tricky. But I'm not bashing (pun intended). |
@gaui theres a dockerfile in nvm’s repo, so it shouldn’t be difficult. |
I’ve worked with @Schniz Does |
Yes:
If you need any help setting up your CI/automated scripts, let me know. I'd be happy to help |
When fnm is not being used with the |
@Schniz Makes sense! Also I’d rather not even use Quick questions —
|
Makes sense 😄 it's not easy on the eyes
Frankly, we don't have a roadmap therefore it's not really planned. 😅 but I thought about doing so because I thought I needed it for I might have some time in the near future to implement it in the near future. However, There are open issues which I'd be happy to accept PRs for, and happy to provide any mentoring needed to make them a reality. If you want to try, hop in the Reason discord and chat with me there! (or you'll also find @tatchi which may help as well 😜 ).
It is configurable by altering For your situation, I'd suggest:
|
@Schniz Whoa,
Can you expand on this? Why is this a bad idea? |
I love to avoid mixing my own binaries from the operating system's one. I already started a POC with #194 :) |
Just saw this repo in trending, kudos to the authors for a great tool. |
Hey @Sparkenstein! Happy to see you here. I'll answer one question at a time 😄
No no, I'm not that kind of boy. The
The script is here: https://github.com/Schniz/fnm.rs/blob/master/benchmarks/run
NVS looks like is running on Node.js — I wanted to write fnm using TypeScript before using Reason. And the reason why I didn't was because Node.js used to have a 200ms boot time penalty. Now it looks like it's about 50ms but I think that once you start adding more libraries it can get slower. 200ms for a "hello" world is unacceptable to me. Initializing nvm was something that took more than one second (if not 2 or 4 seconds) and I didn't want to write a tool that starts off by being slow.
All fnm does is changing symlinks too. And installing Node.js versions. Other than that... nothing!
That's cool and as long as you are happy with the tool you use, you don't need to investigate. From what I know:
I really like the fact there are lots of tools that do the same job. I wonder what is the difference too. We all should write blog posts explaining how we solved these problems. 😄 I hope it answered! |
@Schniz itd be really helpful to me if you could also run those benchmarks on nvm-sh/nvm#2317 - my hope is that will address the primary slowness in nvm use (calling npm) |
@ljharb Woah! looks great. I'll try benchmarking it too tomorrow! |
Here are up-to-date results using the same methodology as above, comparing nvm
Test command (otherwise using the same setup as the
|
Interesting, @thibaudcolas. With the release of 0.37.0, I assumed the speed difference would be much lower between |
A factor of 214 down to 50 is a pretty ridiculously huge speed increase. That there’s still room to go isn’t surprising - shell scripting isn’t designed for performance. The only thing that matters tho is whether a tool is “fast enough” or not - ie, under the threshold where it bothers people. @thibaudcolas thanks for running that! |
Kudos for the hard work! Very impressive 😃 |
Was about to ask for a comparison, just noticed this issue. Any plans to get a summary into the readme? Looking at the raw statistics like stars or followers would give |
in short,
I am gonna close this issue because I see no reason to maintain a list that compares this tool to nvm anymore. With almost 10k stars and many organizations using it as the default Node version manager, I don't see a reason to feel like an underdog. Try fnm -- you can try and use it if it fits your usecases. If you think nvm fits your needs best, use it. We're fortunate to have many flavors of tools in our ecosystem. I personally don't miss using nvm but I understand and respect people who use it as their go to tool. Same for n, and similar tools. |
btw I'm closing this because it's a never-ending issue. Hope y'all understand. If you have a specific question, feel free to open a new issue or hit me on twitter/email/whatever. |
I think that's precisely why it is helpful to provide information for those surveying the space to be able to make a decision on which one to use. That said, I think the Features section of the README already neatly summarizes the differences you mentioned above. (In fact, the section could be titled "Why fnm?" to make this more evident.) |
I agree with @waldyrious. Renaming the section, especially with a "in relation to nvm vX.Y" or similar, would have helped me. I don't want to critizise fnm or nvm, I want to offer the perspective of a newcomer, that has never worked with any of them and is clueless about their differences. I'm unaware of the history and who improved on whom, I just want to pick the best/easiest/fastest without having to research forums and blogs. There must be a reason why fnm exists, which is exactly what I would have liked to see. That said, feel free to ignore. Not my repo, not my choice. |
Personally I’d also welcome seeing some of what’s discussed here featured more prominently in the README. The benchmarks in particular are the kind of information anyone comparing those tools would find interesting. And the README would be a much more obvious place to look for those than past issues. Performance isn’t necessarily a big deciding factor, but with both tools being very similar, might as well pick the fast one. fnm being more interoperable is also an important factor that should be contrasted with how other tools fare. I don’t think this has to be something that’s high-maintenance – at worst, just a link to this issue ("🚀 Built with speed in mind (see community-provided benchmarks)") would be useful. And on that note here is a new benchmark from my 2019 MBP,
This is with the latest version of both. nvm v0.39.2, fnm v1.32.0. Same test setup as the last. TL;DR; either my computer got slower or both tools did. Important number is 44.43 – fnm now appears to be "only" 44 times faster. |
@thibaudcolas thanks for this. Looks like I need to optimize it again. Will run the benchmarks too. |
Looks promising 👍. Any comparison to the existing node version manager like nvm and n?
The text was updated successfully, but these errors were encountered: