Ask HN: Why do computers/tablets/etc "freeze up" as they get older?
So far as I can tell the problem started around the time Win95 came out and also affected MacOS Classic at around the same time. It did not seem to affect minicomputers like the PDP-8, PDP-11 and VAX. It did not seem to affect home computers like the Apple ][, Commodore 64, and such. I don't think it affected PC compatible computers running DOS. I don't think it affected Sun or AIX workstations or Linux machines running X Windows until KDE and Gnome came along, now it does.
(I think it happened around the time that most GUI systems started to incorporate distributed object models and RPC mechanisms like COM, XPC services, DBus, Binder, etc. Certainly all the systems that annoy me like this have something like that.)
Reinstalling the OS seems to help for a short time, but as time goes by the length of the honeymoon seems to get shorter and it is faster to get slow again.
Back in the day it helped to defragment hard drives but we're told we don't need to do this in the SSD era.
If I had to describe it, it is not that the machine gets "slower", but instead it has periods of being unresponsive that become longer and more frequent. If it was a person or an animal I'd imagine that it was inattentive, distracted, or paying attention to something else.
If you benchmarked in the ordinary way you might not see the problem because it's a disease of interactive performance: a benchmark might report 10 seconds on either an old or a new machine: it might take 0.2 sec for the benchmark to launch on a new machine and 2.0 sec on the old machine, but the benchmark starts the clock after this. You might need to take a video of the screen + input devices to really capture your experience.
Any thoughts?
104 comments
[ 2.8 ms ] story [ 180 ms ] threadDefragging freed up space for virtual memory
My impression was that the upgrade treadmill for computers started to get established in the late 1980s.
That is, even though they produced a huge number of computers in the Apple ][ line over about 13 years
https://en.wikipedia.org/wiki/Apple_II_series
you couldn't say any of the newer computers were that much better, particularly in terms of raw performance. It was the PC clones that decoupled the system clock from the video clock making it possible to release a machine that was clocked substantially higher than what you could get six months ago, enough that you could buy a new computer in two years that was more than twice as powerful as your old computer.
Circa 2006
https://en.wikipedia.org/wiki/Dennard_scaling
broke down and the industry has had to multiple cores, GPU acceleration, etc. to be able to make the case that today's computer is better than the one you had before.
Differently from high CPU usage or network problems, this can potentially affect any memory operation, so even carefully designed GUIs will freeze.
This effect will not happen in systems with sufficient RAM, or that don't swap memory to disk. In that case it'll either crash the program trying to allocate, or a random process[2].
[1] https://en.wikipedia.org/wiki/Thrashing_(computer_science)
[2] https://en.wikipedia.org/wiki/Out_of_memory
For example, one of the symptoms of networking packet is slowness. Assume 2% of packets are lost. A packet is lost, the receiver re-requests it, and the retry has a 98% chance of being successful. End result: the transmission completes, but at a slower pace.
If cooling is insufficient so as to cause thermal throttling, the effects are usually very obvious too, and not gradual. Neither will reinstalling software change that.
This can be explained just by thermal paste drying out and caking up, no more mystery needed. I've had 12 year old "workstation" laptops (the copper cooling alone was heavier than some entire laptops are these days) which started spinning up their fans for seemingly no reason. I dismantled them, cleaned off the old paste, put on a fresh paste, reassembled, and haven't heard the fans once since then. The cooling was good on day one, it got worse for unavoidable physical reasons, and it's easy to fix if you know how.
The problem is most users do not know this is happening and wouldn't know how to fix it even if they did. If they ask someone for help, 99% of the time they'll be told it's too old and they should upgrade.
I still use an iPhone 6A and it works fine.
Stuff like this is one of the key reasons I dumped Windows.
I’ve earned the right to say the truth about Windows.
And yes, MacOS is a far better operating system….. I’ve earned the right to say that too.
I bet apple 2s run better today.
or, if it hasn't, you're trying to view websites with heavy javascript which requires too much memory/cpu to view effectively
Not sure why it happens with phones -- I assumed the OSes shipped more expensive animations & apps to encourage people to upgrade.
Hardest to identify exactly which one blew unless it is obvious.
Toss motherbord and upgrade it.
e.g., I'm one of the only people on my team at work whose computer just works consistently since I understand these things and sidestep well intentioned but poorly conceived it policies such as untested updates that nearly brick laptops often...
I thought this was a bug in firefox, but now it's in the chrome based browser too.
Another vector is uncontrolled synchronicity. E.g. I knew programs that could install an Explorer context menu item that could delay presenting it for two seconds when you right-click. I don’t remember the names, but remember hunting them down and removing from my context menu.
So I think that mostly all of this is because of (1) problematic implementations of caches and (2) plugins that break assumptions on how long something should take.
I've met people who claim they can install 30 plugins into Eclipse and still get things done but when I try it, Eclipse seems to get "pluginitis" and become unreliable. I've found distros of tools like Eclipse and the JetBrain IDEs that have a curated collection of plugins that seem to work but I find installing anything, even something little like a Plugin for bash files because it saw I was editing a ".sh" file, is like playing Russian Roulette.
I feel the same way about web browser extensions. I think it's OK to install something like uBlock Origin and certain other anti-tracking tools, but you can make the case that those improve system performance whereas performance can only go in one way installing other browser extensions.
The "problematic cache" rings true for me. Any developer has had the experience of making something that performs 100x or more better with a very simple cache. However it is by no mean a given that adding a cache layer really improves performance in a system, particularly when you can have problems with locks being held, invalidation, etc. Particularly if worst-case latency is your concern, for instance (and I think it is the concern when your computer is "freezing up") the cache will sometimes waste time doing its cache thing and still have to go to the source.
Those games might do better because of a different performance culture... People are very concerned about worse-case latency for games but seem to be completely unconcerned when it is a spreadsheet or a graphics editor or the GUI shell of your desktop.
On a desktop, I think it's more about hygiene and expertise with the OS.
Your software most likely did not ran off a hard disk. So it was slow to load anyways.. and after that it ran within the memory it had. One program at a time, no memory swapping.
> I don't think it affected PC compatible computers running DOS.
Umm.. I remember being mesmerized by disk defrag programs. There was also TSR programs and other ways to run more as one program at a time.
In general though if you have more state there is more possibility that the state goes bad (e.g. malware counts as "bad state", as does a configuration database growing without bound, or something like the XP-era updating mechanism in Windows that was O(N^2) in terms of the number of previous updates)
I could swear I didn't notice this rot with that 286 machine, the 486 machine I replaced it on that ran Linux, the Sun 3 and Sun SPARC workstations at my undergrad school, AIX workstations at grad school, etc. (There was the SGI machine that always struggled to get out of its own way at anything that a professor bought, never bothered to set a route password, never got anything done with it, but left it plugged into the Ethernet and power)
Once we got into modern Linux distributions like Fedora that had Gnome or KDE I definitely had this problem though.
Software can decay, hardware can decay, both can exacerbate each other. The registry gets filled up, the filesystem gets fragmented, the software accumulates in memory, upgrades of the same software accumulate hacks and poor design leads to worse fixes to problems, and slowly buggier versions are shipped. The hard drive slowly fails, the SSD loses viable blocks, the fan and heatsink gets clogged with dust and less efficiently cools the system, the battery loses capacity which causes the system to throttle itself, the power supply components slowly degrade causing voltage inconsistency, tin whiskers develop.
The simplest explanation I can give is entropy. Everything in the universe is in a state of decay. Eventually the thing decays so much it breaks down.
I had two mac minis that operated in the same conditions and seemed well designed enough that dust got separated from the air that went through the computer so it never got clogged up.
Silicon aging contributes some: https://en.wikipedia.org/wiki/Transistor_aging
This wouldn't have affected your Apple II and PDP-8's, due to the huge transistors in those things (relatively to modern integration scales), and not running at anywhere the modern clock speeds.
> The biggest factor is heat. “Higher speeds tends to produce higher temperatures and temperature is the biggest killer,” says Rita Horner, senior product marketing manager for 3D-IC at Synopsys. “Temperature exacerbates electron migration. The expected life can exponentially change from a tiny delta in temperature.”
basically smaller nm builds are more susceptible to tiny variations in heat/cold, physical impacts, electrostatic shock, etc.
My personal experience is that general productivity apps, even office suites haven't changed that much over 30 years, but their system requirements keep jumping.
If you can identify differences between then and now, how many of those aren't bloat?
* Video and voice calls, including group calls
* Inline images and video
* Screen sharing
* Clients on every OS and the web browser, they should all look pretty much exactly the same and be updated at the same time
* and a whole bunch of other random stuff like in app image editing, payment processing, etc
I'd say the biggest hit to memory usage and performance is just all the inline images and videos. IRC may have been super lightweight and fast, but people expect more of programs now. Electron/web tech was also pretty heavy, but releasing a native Windows app and maybe later a half done MacOS version is no longer acceptable. You _have_ to support windows, mac, linux, android, ios, and web. All of these versions _must_ have the full feature set and look the same.
https://en.wikipedia.org/wiki/Wirth%27s_law
2) local state grows and evolves in complexity. configuration databases grow, new files are added to the filesystem, software upgrades leave unused state around (because getting software upgrades right is still a not-totally-solved problem), indexes (or similar) of mutable state grow but sometimes don't get rebuilt causing locality to suffer affecting cache performance.
3) psychology.
AKA software bloat. The amount of layers of garbage in an OS today is horrendous.
Most of the time, “bloat” is another way to say “the features I don’t use”. Yes, sometimes people push bad code to production. Other times it’s new inherently more complex code that makes computers nicer to use.
As for android, I have experienced this a million times also, but do not know the cause. But I do usually see an accumulation of new and stupid bugs as I get software updates. Incorrect app scaling and positioning, etc which were not the case for the first six months I had the phone.
Galaxy S2,S3,S4,S5 One Plus 6 and more
Apple added an update that could detect these power failure reboots and cap the CPU frequency so your phone doesn’t crash all the time. Around the same time, a lot of Android phones like the nexus 6P were plagued with this issue where the phone would just randomly shut down.
Every single modern device with a CPU does this dynamically. You are mixing up what batterygate was about.
Apple released an update that would permanently throttle a handset if it rebooted (browned out) due to a degraded battery. Replacing the battery would bring it back to full speed. The feature still exists today. It’s a bit like the “limp home” mode in your car.