7 ms·
Why do our phones, which certainly felt damn snappy the day we bought them, inevitablely seem to slow down to the point of unusability after a couple dozen mont
by zaroth 9y ago
Why do our phones, which certainly felt damn snappy the day we bought them, inevitablely seem to slow down to the point of unusability after a couple dozen months? Even after a factory reset and installing no apps at all... I know it didn't take that long to open/close the built in apps when I bought that iPhone 4, 5, 5s...
The only thing I can think of is the flash drive is slowing down as it wears. Or, the CPU clock rate is programmed to progressively lower itself the longer it runs.
Has anyone done the performance analysis on used phones to prove this isn't just my brain moving the goalposts as hardware improves, or apps just slowing down as they bloat, but that the old devices really and truly are running the same software significantly slower than when they were new?
- lostmsu 9y agoHow about this simple hypothesis: Android is suffering from the same problems all Windows had prior to Windows 7 - drive fragmentation. Cheap flash will not give you nice access times when data is fragmented, and over time fragmentation accumulates.
- badloginagain 9y agoI have fond memories of several hour defrag sessions on old Windows machines.
- thedailymail 9y agoThose were the days.
- andai 9y agoI thought fragmentation was a non-issue on solid state storage?
- chc 9y agoWhy wouldn't flash memory give good access times with fragmented data? It's not like it needs to move a head around like a hard disk. Shouldn't one block be as accessible as any other block?
- wtallis 9y agoDepends on what you mean by "block". Your OS is probably interacting with the SSD in terms of 512-byte logical blocks, but most likely grouping most I/O into 4kB or larger chunks due to the 4kB virtual memory page size. But the underlying NAND flash has a native page size of more like 16kB, and an erase block size in the MB range, and an internal RAID-like striping of data across multiple channels on the SSD controller. Sequential access is still much simpler and faster than random access.
- bryanbuckley 9y agoCould be the drive slowing.. but definitely a big chunk of loss of performance comes from OS updates (i.e. that were not tested on the now old device for performance and battery discharge rate as aggressively as initial release)
- nikanj 9y agoSay no to every iOS upgrade and your device remains quite fast. Apps do slow down over time, unless you disable updates for them as well.
- mikeash 9y agoNext time I get a new phone, I'm going to put together a performance testing plan and record a video of it on the new phone. Then any time I wonder about this, I can run through the plan again and compare with the recording. So, ask me again in a few years.
- kbenson 9y agoPlease publish/open source the testing criteria, so others can do the test and submit their own results. That would be awesome. I would probably run around the house and test all the phones in my family. Even something as simple as Github and using pull requests for those that know how to do so (or manually just adding for those that email and don't) would give a lot of introspection, and allow you to share commit bits so people could help (as well as making it easy for people to clone to run analysis on if they desire).
- mikeash 9y agoSounds good. I'll at least toss up the testing plan on GitHub, and maybe compile results too. I'll probably be doing this for the next iPhone, so it'll be soon.
- walterbell 9y agoMight need an identical control device that does not receive software updates.
- mikeash 9y agoThat would be ideal, but a little more money than I'm willing to spend for such a thing.
- woobar 9y agoThanks for the idea. I just created a list of built-in apps, set them to point to some deafults that do not depened on the network performance (for instance, Calendar only includes Holidays, and displays year view), rebooted and measured time to start them in a succession. Apps that depends on internet are excluded. While this is not super accurate because OS and app updates could affect their startup time, it is still something measurable. It will be interesting to see if a year from now a set of same apps with basically same functionality will take more time to start on the same (or newer) hardware.
- leggomylibro 9y agoI don't get this; everyone says it, but I've never seen it in smartphones. Laptops, sure, but Windows really DOES accumulate a lot of cruft, and OSX's updates never seem to improve performance. Smartphones, though? The only slowdown I've noticed is when the battery starts to go. And then you can usually tell; the device gets hot as the battery pushes up against all the ESR it's accumulated, the CPU steps back a bit...that's what I figure, anyways. For me, it's always coincided with the same inflection point when I start really noticing things like charge cycles taking much longer and a sharp drop-off in the life of a 100% charge.
- bmurphy1976 9y agoI've experienced slow-downs with both iOS and Android devices. They almost always corresponded with newer versions of operating system and all the extra functionality that came with the upgrade. The apps are also evolving. Compare Facebook today to what it was two or three years ago. The app does a ton more and all that extra functionality doesn't come for free. I suspect one of the primary reasons they broke messenger out into a separate app is that the Facebook app was simply too damn big. There have been instances where an upgrade has made my experience better, but the trend has definitely been in the other direction (for me anyway). I also have another concrete example: the original Nexus 7 had an SSD that didn't support trim. Over time it became nearly unusable as the SSD became fragmented. It was also severely bandwidth constrained. The device was decent until the first major Android revision came out. At that point, the new version of Android so significantly increased the bandwidth requirements on the SSD that it effectively strangled the device. What was an awesome device the day I got it became absolutely unusable. Eventually I installed a version of CyanogenMod and formatted it with an SSD friendly file system which made it passable again but, still sucked compared to the day I bought it.
- emerongi 9y agoI still have the original Nexus 7 and it's unbelievable how unusable it has become. I use a slim ROM of KitKat (the Android version it came with) and it's still so freaking sluggish. I only use it for watching videos now, it's unbearable for anything interactive. It used to be quite nice with the slim ROMs, but at this point nothing has helped to get it back to run like it used to. 4years of light use (99% of time sitting idle).
- cpeterso 9y agoMy iPhone 6 used to be snappy, but now takes almost 10 seconds to just open an app. Perhaps new OS updates are not as well-optimized for older iPhones as they are for the latest version. Ars Technica's Android 8.0 deep-dive has some interesting charts showing Android device performance deteriorating over time: https://arstechnica.com/gadgets/2017/09/android-8-0-oreo-thoroughly-reviewed/4/#h1 https://arstechnica.com/gadgets/2017/09/android-8-0-oreo-tho...
- dragonsky67 9y agoI'm not sure that the new updates are doing much to harm older phones. My iPhone 5 is still running as quickly as it was when I got it. In fact, the latest updates seem to have made things somewhat faster. Unfortunately I'm now at end of life as far as iOS updates go. I don't think I will bother with updating the hardware for some time yet.
- copperx 9y agoHow can a piece code be optimized for one phone but not for another? Are we dealing with a bunch of #ifdefs here?
- meric 9y agoMy iPhone 6 is still snappy but the battery barely lasts 2 hours. I'm half way to work and it's at 29%.
- amitp 9y agoIf you're on a Mac, try Coconut Battery to check the battery health. Mine was showing 30% of original capacity, which explained why it kept draining quickly. Resetting (recalibrating?) it by letting it drain completely and letting it charge got it back up to 80%. I don't know why it had gotten into a bad state :(
- hutzlibu 9y ago> I don't know why it had gotten into a bad state :( just ordinary use makes them that way. Calibrating is necessary for all lithium batteries, but normally you charge when you think its time and don't wait for the battery to get empty first
- 52-6F-62 9y agoI've experienced and noticed a different problem. I've had the same phone for almost 5 years (have a hard time replacing something that still works well and is in good condition), and I've found it's not the speed that has worsened and I can live with not having certain features to run some new apps; it's the storage. My phone's storage is not large by today's standards, I have 16 GB. I run fewer apps than I did when I got the phone, and have run the same general collection from day one. I have less music on my phone than I had in the past. I have only had to continually remove applications and music as just about every week it has warned me that my storage is almost full. This only started within the last year. I won't have added anything new, keep my cache flushed, etc and I still have to continually remove items. Is there something practical I'm missing here, or... ?
- abecedarius 9y agoThis happened to me too on an Android phone. It turned out according to the web to be some logfile that keeps growing and which I don't know how to delete -- it doesn't show up in the system-provided views of what's on there. (I'm sorry this is so vague, I'm not interested in Android and it's been quite a while since I gave up.) It's still running because I deleted all the apps except a few core ones, but I'd appreciate some tips about this too.
- mahyarm 9y agoI'm guessing you have an iPhone? Apps are getting larger due to more and more code accumulating as time goes on and apple's toolkit / compilers causing binaries to become larger. Swift itself creates incredibly bloated binaries compared to objective-c. More people are using more 3rd party libraries than 5 years ago, where you just used apple's built in libraries for the most part. If you just used the shared system libraries, then that didn't count against your binary size.
- 52-6F-62 9y agoYou guessed right. I figured that aging of the tech vs package size would be an issue, including the growing size of the OS... but do you think this is a problem even in long-life applications? I mean, surely AAC and MP3 files haven't bloated so significantly in the past 5 - 10 years. I haven't worked much yet in Swift and wasn't aware of those differences vs Objective-C, though. That's interesting.
- mahyarm 9y agoAre you comparing identical OS versions and an identical amount of apps installed? Newer versions often make everything slower. I remember when the iOS 6 -> iOS 7 update happened, the exact same code run on the same device with different OS versions ran %20 slower.
- nonamechicken 9y agoSomeone posted about this issue here: https://news.ycombinator.com/item?id=15037960 https://news.ycombinator.com/item?id=15037960 I've got a Galaxy S3, an S4 couple first generation Moto Gs, a 2012 and a 2013 Nexus 7, a Note 2, I think? 2 Note 3s, and a One Plus One in various states of: loaned to cousins, used as house phones, backups in a drawer, backups in cars, or lying on my desk. They were all either broken, at yard sales, given to me my clients / contacts that don't want them, or were <$20 on ebay. In general four things kill these devices: Touchscreen breakage. It is almost never worth trying to replace if the screen cracks. Flash burnout. Shitty flash chips don't last forever. I've binned almost every older phone than this crop because the flash memory dies. Charger port wear. Microusb sucks, replacement parts vary wildly depending on model - I can get an S series charger for <$5 most of the time, but trying to replace a Droid phone charger once was impossible because the charger harness was soldered to the pcb. Software. I generally outright ignore devices without a ROM scene and an unlocked bootloader, but even then it is entirely volunteer how long Cyanogen/Lineage/Paranoid/etc are willing to keep supporting these fossil kernels. The S3, Note 2-3, and original Nexus 7 are all on their deathbeds because of lagging community support for these devices. It is worth mentioning, however, for the Samsung devices they have gone community supported far longer at this point than their official support periods lasted. Great job Samsung. Batteries are usually a non-issue. You can buy shitty Chinese knockoff batteries (or if you are lucky Anker) that don't hold a charge and don't last long, but you can keep these devices running on bootleg parts for a while. The software is the ultimate killer. What should be the easiest to maintain is the hardest, because corporate greed and hunger for control trumps customer respect. All my mobile devices are cheap, used, or broken when I get them because none of these exploitative abusers are worth giving a direct cent to. Sadly mobile flash doesn't support smart monitoring. There are three indicators, but your flash can randomly fail without any of them being observable: Sector reallocations. As flash stops writing or reading the package will reallocate data. This process is intensive and usually lags out the phone. If when moving large amounts of data into / off the flash the whole phone is freezing, it can be due to this. Stunted read / write speeds. As the flash degrades and more sectors go bad, your read and write performance suffer. Fragmentation gets worse as working sectors dry up. If your phone was benching ~80MB/s read or write speeds the day you got it and is down to ~20 5 years later, it is likely nearing a failure point. This is usually a gradual aging thing, but you do often see a steep slope of sudden performance crash before the whole chip becomes unusable. Crippled access times. The former was data rate, this is data latency. The latency should always be consistent and not age much throughout the life of the chip - the ability to access flash almost always stays near-constant over the lifetime of the chip. If this starts going, for very small data sizes, the chips controller can be dying. Which happens, because in phones a lot of corners are cut, and flash mmus are often really, really cheap. There is also the really rare chance you find a corrupted file you cannot open that used to work, which can in extremely rare circumstances mean that your phone has ran out of unallocated sectors and is now losing capacity including written data, but that is highly unlikely - flash almost always becomes unwritable way before becoming unreadable, and your phone will fail before unreadability starts manifesting en masse. It would be useful if we could get A. lifetime write averages for the flash chips in popular phones and B. trace such a number throughout the lifetime of the device, but we don't have those, so you are almost always flying in the dark on when your phones memory will die.
- lobster_johnson 9y agoMy own iPhone 7 is plenty fast, but I have noticed that the older models seem to be getting slower. Presumably this is because Apple keeps adding features and animations and so on, and so iOS grows bigger and more resource-hungry, as are apps, and developers aren't optimizing by running their stuff on old iPhone 5 models anymore.
- Bartweiss 9y agoPerhaps not over months, but over years OS bloat becomes nontrivial. Subjectively, my phone appears to slow down after most updates; objectively it definitely loses usable space to the operating system. App bloat displays a similar problem, albeit less blatant. This seems to mirror Wirth's Law more generally; every piece of software on your phone gets more demanding every time it updates.