Hacker News new | ask | show | jobs
by marktucker 3384 days ago
In my experience, Visual Studio performance has improved significantly since VS2010, but if you compare it to VC6, it's a joke. There's still an old PC at the office running it, and double clicking a project opens the IDE and loads the project in less than a second. It's beautiful.
2 comments

Sure, but it does so much more than VC6 used to do. I mean, the intellisense is so good nowadays, the continuous compiling that essentially gives you on the fly 'compiler errors', ...

I agree that it would probably be nice if those could be turned off, and the UI is sluggish, but VC6 was (apart from being fast) not much to write home about (compared to what we have now).

To be fair though parent was referring to VC6's start-up time compared to the current version's start-up time. Is it fair to expect continuous compilation or maybe even intenseness to slow down start-up? I'm not so sure.
We still build some stuff with VS2005 and it feels very fast and responsive while having everything I usually need in ide. The only thing it missing is modern C++ compiler.
Couldn't you say this about the software industry in general? In the 90's I used to have a Sun workstation on my desk. It ran the powerful Solaris operating system, but had just 16MB of RAM! Today you need 1GB of RAM to run an OS comfortably. My question: what does modern Linux do that Solaris from the 90's did not, that it requires 50x more memory?
I'm not sure if you're serious, but modern linux does a lot of things that solaris didn't do back then. A few more points: my linux system ran "OK" with 8MB RAM in 1995, although it started to swap when I ran emacs, X11, and g++ at the same time (this was ultimately fixed by maxxing out the RAM to 32MB).

I have small Linux systems today that work comfortable with 128MB of RAM used.

What my modern linux system does that Solaris didn't do in the 90s: runs a browser than can render absurdly detailed scenes using OpenGL where the object model itself exceeds 1GB (it fits nicely on the graphics card, but the computer is also loading that from the net at gigabit speeds and storing another copy in RAM).

That said, I think it's true that modern systems just waste oodles of resources unnecessarily.

The SGI Indy came with just 16 MB RAM, and ran the IRIX graphical environment and also had OpenGL. IRIX had excellent system administration tools.

https://en.wikipedia.org/wiki/SGI_Indy

https://en.wikipedia.org/wiki/IRIX

We had Indys with 32MB of RAM in '97-98. They were basically useless- the OpenGL implementation wasn't that great, and the rest of the system was massively underprovisioned (constant slow disk IO). However, we also had a bunch of better SGIs with 64+MB of RAM and those worked great.
Back when EMACS stood for Eight Megs And Constantly Swapping.

It's salutary to consider that the memory for a reasonably spec'd machine a little over 20 years ago is now a rounding error

I remember at about that time having 80MiB of RAM: a) my machine flew, and b) plenty of people would ask why I needed so much

the "exotic" machine at the time was a Digital Alpha (64 bit! In 1995) that had 64MB IIRC. It did fly. The solaris machines we used took 20 minuts to boot and another 1 minute to open a shell.
If you set up your Linux distro from scratch you can easily manage under 200MB of RAM. I have an LFS I set up which idles at 150MB or so. A LOT of stuff is bloat in modern distributions.

I recommend everyone to try and build an LFS (Linux From Scratch) at least once or at least set up an ArchLinux box to get a feel for how Linux actually works and where the bloat is.

As an example, the music player daemon (MPD) has 110 dependencies among which is wayland or x-org, I don't know why.

Also, using udev to only load needed kernel modules helps with a lot of memory usage.

Can you recommend any good tools for measuring and plotting overall system memory usage over time? I always thought it would be a fun project to try to strip down a Linux distribution and see how low I could get worst-case memory usage.
You can simply pipe top's output to a file using something like cron. There is a very good tool for boot times though integrated into systemd. Call it using `systemd-analyze`. It has a lot of subcommands you can check by `systemd-analyze --help`.

Also, if you'd like to compare performance degradation over time, NixOS is a good choice to run because it can simply rollback to old configurations and you can see what changed.

If you could give me a brief list of what features you expect from such a tool I'll be happy to take it up as a project and release it.
Don't reinvent collectd :)
Thanks for the recommendation. Exactly what the parent commenter was asking for.
Well, I don't know, could your Solaris (mostly) seamlessly connect and disconnect to wireless networks? I don't even think there were that many wireless networks in the world back then :)

Anyway, this is is just 1 contrived example of something modern OSs do, and that OSs from the 90's didn't do.

Sure, there's some bloat, but a lot of it is the "Mozilla kind": "Mozilla is big not because it is full of useless crap. It is big because your needs are big".

> could your Solaris (mostly) seamlessly connect and disconnect to wireless networks? I don't even think there were that many wireless networks in the world back then :)

Let alone USB. During my training, there were lots of desktops running Windows NT 4.0, which did not know USB. By the time I had already become so used to copying data back and forth with a USB thumb drive (even though back then their capacity was still measured in megabytes), that it became fairly annoying to walk up to some computer, plug in the thumb drive, then realize this machine is running NT 4.0, not Windows 2000, cursing, then looking for another way to get some piece of data on that computer: Usually put it on some other machine copy it over the network.

Ah, those were the days... ;-)

> Anyway, this is is just 1 contrived example of something modern OSs do, and that OSs from the 90's didn't do.

This doesn't add anything, because contrived or not, it doesn't answer the question that was posed: "What does modern Linux do that Solaris from the 90's did not, that it requires 50x more memory?"

It hits the first part of the question, but not the second part. We could add wifi to a 90s OS without severely inflating the memory requirements. My Nintendo DS (with 4MB RAM) "seamlessly connects and disconnects to wireless networks", after all.

You could easily answer the question with a sensible, non-contrived answer, and I'm not sure why you didn't.

Isn't a significant chunk of OS memory usage caused by the desktop UI? If we're talking about servers, I'm guessing it would be because of drivers and more built-in functionality, some of which is rarely used.
Yeah — the image buffers (screen resolutions) are bigger, we run more apps, more advanced desktop environments… also in the old days (before OS X, Compiz (fun with desktop cubes!) and Vista Aero) people used to run without compositing, which meant one common image for all apps to draw into.

Just booted my laptop (FreeBSD -current amd64, 1366x768 display) and started X: only 204M "Active" memory. Of the 204M: 60M is syncthing, 39M compton, 31M Xorg, 11M i3bar, 11M polkitd, 10M i3, 9M dunst, 5M wpa-supplicant… Not counting syncthing that's 144 megabytes. I think that looks reasonable. You can go lower and optimize for low memory (no polkit, no compton — 94M) or go higher and optimize for usability and fancy UI features (install gnome :D)

If it takes 1008MB to seamlessly connect to a wireless network, something is clearly wrong.
> 1 contrived example
I often wonder the same. In '90 I helped build a primitive web browser, including an interpretive language. Used it to instrument a couple nuclear power plants. Displays were graphically rich, and had to load in < 1 sec and display real-time plant data. I don't ever recall waiting for my IDE (emacs) to start, or even waiting very long for a full build to complete.

When we have less, we make due with less. When we have more, we consume more. It's sort of like money.

Forgive the nitpick, but it is "make do", if only because "make due" reads very awkwardly in British English where "due" is pronounced as if it is spelled with a U and an E, not as if it is spelled with two O's
I learned something grammatical today.
Oh noes. You need lots more to run OSX El Capitan as I found out after acquiring a second-hand iMac. It was unusable at 1GB.