Innehållsförteckning:
- Vad är Bit Rot, exakt?
- Först några utslagare
- Software Erosion
- Software Entropy
- Programvaruuppblåsning
- Så vad betyder allt detta och vad kan jag göra med det?
- Frågor?
Datorer är typ av människor - när de åldras tenderar de att bli lite långsammare och brister är lättare att se.
Våra telefoner är datorer som krymps ned för att vara fickstorlek och lätta att bära med sig. Och det betyder att när tiden går, saker händer inte så snabbt som de brukade eller saker kan bli lite buggy. Detta är universellt; det händer med Galaxy-telefoner och LG-telefoner och Pixel-telefoner och iPhoner och alla andra telefoner som gör mer än att ringa och skicka texter. En del människor säger att de inte ser det hända, och det är därför det händer och hur programvaran skrivs för alla olika telefoner ute i naturen. Men det händer fortfarande på din telefon just nu, och kommer alltid att vara det.
Låt oss ta en titt på vad som vanligen kallas "Bit Rot" och se om vi inte kan förstå saker lite bättre.
Vad är Bit Rot, exakt?
Det är en term som kastas runt mycket av människor som befinner sig i datorer, och det betyder i princip att programvaran är "gammal" och har blivit långsammare än tidigare. Det finns tre saker att spela och de är väl dokumenterade även om de inte är så lätt att förstå: Software Erosion, Software Entropy och Software Bloat.
Först några utslagare
Ibland kan det också finnas andra faktorer. Data Degradation och Feature Creep kan få program och appar att sakta ner, men de är lättare att förklara och är lite annorlunda än vad vi kallar Bit Rot. Data Degradation är ett fint ord som betyder att ditt minne - antingen RAM, lagring eller båda - blir gammalt. RAM- och Solid State-medier kräver en elektrisk laddning och över tid kan den spridas mer än vad den var utformad för att göra. Detta innebär att några av de lagrade bitarna (programvarubitar) kan ändras. När några få bitar är fel kan många program kompensera men det tar tid och programmen är lite långsammare. När många bitar är fel, slutar ganska mycket att fungera som avsett.
Datadegradering och funktionskrypning kan göra din telefon också långsammare, men skiljer sig från Bit Rot.
Feature Creep är lätt att förstå. Din telefon byggdes med en specifik uppsättning programvara i åtanke. När du får en uppdatering som lägger till fler funktioner måste hårdvaran arbeta hårdare och saker blir långsammare. Onlineforum är fyllda med människor som hatade en ny uppdatering på sin Galaxy-telefon och personer med äldre iPhoner som hatar den senaste versionen av iOS. Det beror på att programvaran är skriven med nyare och mer kapabel hårdvara i åtanke, precis som den programvara som din telefon ursprungligen levererades med. Vi älskar alla nya funktioner och uppdateringar, men det gamla ordspråket "var försiktig vad du önskar dig" är rätt på pengarna här.
Dessa problem kan verkligen ha en effekt, men de skiljer sig från Bit Rot och bidrar antagligen inte mycket till någon långsamhet på våra telefoner eftersom vi inte håller dem tillräckligt länge för att se det i handling.
Software Erosion
Software Erosion är den långsamma men stadiga försämringen av prestanda som kan hända med vilken programvara som helst, oavsett om det är något vi använder mycket eller bara lite. Eller till och med aldrig. Detta händer eftersom vi använder programvaran och alla applikationer ändras när de används - vi lägger till användardata till basen så att programvaran gör vad vi vill att den ska göra. Observera att detta skiljer sig från att mjukvara blir långsam eller buggy medan vi använder det mycket men går tillbaka till det normala med en omstart. Det beror oftast på små fel som ackumuleras över tid eller ett minnesläckage. Du kan inte fixa programvarorosion genom att stänga och öppna en app igen eller starta om din telefon.
All programvara har buggar och all programvara behöver regelbundet underhåll som den aldrig får.
Det finns två olika typer av programvarorosion, vilande och aktiva. Sovande programvarorosion inträffar när ett program eller delar av ett program du inte använder slutar fungera bra eftersom andra saker har förändrats, och aktiv erosion händer på grund av förändringar medan du använder den. Båda typerna händer på grund av några olika orsaker.
- Obrukad eller restkod kan (och ofta innehåller) buggar som inte fastnar.
All programvara har buggar, oavsett vad en utvecklare eller användare säger. När ett företag ändrar någon kod finns det mycket god chans att någon av den ursprungliga koden aldrig kommer att användas men är fortfarande inbyggd i slutprodukten. Buggar här är inte lika troliga att fastna och kan ha en omedelbar effekt eller ett som tar ett tag att dyka upp.
- Ändringar eftersom programvaran inte är användarvänlig händer mycket.
En utvecklare bygger programvara med en specifik idé om hur vi kommer att använda den, men när den väl kommer i våra händer använder vi ofta inte det så! Ibland är detta inte vårt fel och programvaran har ett dåligt implementerat gränssnitt så vi gör saker som en utvecklare aldrig trodde att vi skulle göra. Andra gånger är det vårt fel och vi gör saker som att skapa flera konton eller köra flera instanser av en app eller funktion som inte var designad för att köra på det sättet. Detta kan lämna användardata eller cache-data som är svårare för en app att bearbeta.
- Bristen på uppdateringar och underhåll är dåligt.
Varje utvecklare kommer att säga att jobbet inte är klart när programmet har publicerats och programvaran måste underhållas. Detta innebär att fixa buggar som användare hittar, men också ofta uppdateringar för att fungera bra med annan programvara. Brist på regelbundet underhåll över hela linjen är den största orsaken till programvarorosion.
"Android" som körs på din telefon är faktiskt en stor grupp av oberoende kör program och tjänster som måste kommunicera med varandra ständigt. Ett exempel: Facebook gör en ny ändring på sina servrar och uppdaterar sedan appen i Google Play. Din Kontakter-app kopplas till Facebook, så den kan behöva uppdateras. Eller din kamera får en uppdatering men galleri-applikationen som är knuten till den gör det inte. Alla delar av systemet måste fungera med alla andra delar, och det betyder regelbundet underhåll.
Den goda nyheten här är att många programvarorosionsproblem fixas med en fabriksåterställning där all användardata raderas. Den dåliga nyheten är att allt kommer tillbaka så småningom.
Software Entropy
All mjukvara som vi inte kan ändra har buggar och oanvänd kod (se ovan). Dessa buggar kommer förmodligen att förbli oförändrade över tid, men kan bli värre när komplexiteten i programvaran vi kan ändra ökar. Detta kallas Software Entropy.
Programvaran du ändrar påverkar programvaran du inte kan ändra eftersom systemet i sig blir mer komplex.
Det mesta av programvaran på din telefon finns i ett slutet system. Du kanske kan uppdatera tangentbordet eller kamera-appen från Play Store, men huvuddelen av operativsystemet är installerat från fabriken och ändras bara med en fullständig systemuppdatering. Detta skiljer sig mycket från alla appar, både fabriksinstallerade användarappar och de du själv installerade. Mjukvaran du kan ändra blir mer komplex med tiden och programvaran du inte kan ändra måste ta itu med den.
De människor som skrev programvaran på din telefon är ganska smarta när det gäller allt detta. Men ingen kan veta vad vi ska göra, vilka nya appar som kan göra och hur appar som är utformade för en uppsättning API: er (till exempel programmeringsgränssnitt), till exempel Samsungs API: er från deras programvaruutvecklingspaket, kommer att fungera med appar designad för en annan uppsättning API: er, som de från Google som ingår i Android. Utvecklarna måste göra sitt bästa för att gissa och göra programvaran på ett sätt som inte går sönder och hoppas på det bästa.
Det finns två sätt att bekämpa programvaruantropi - regelbundet programvaruunderhåll genom snabba uppdateringar eller genom att återställa användarprogramvaran till fabrikstillståndet.
Programvaruuppblåsning
Detta är inte vad namnet antyder, även om extra bloatware-appar kan och gör att saker går långsammare. Programuppblåsning när man talar om Bit Rot betyder mjukvara som är fylld med extra eller oanvända funktioner.
Ju fler funktioner som läggs till i något program, desto mer komplex blir det. Komplexiteten gör applikationer långsammare.
"Extra" -funktioner är omöjliga att definiera. Appar eller delar av appar som jag inte använder är främmande för mig, men du kanske använder och älskar dem. Ur en dators synvinkel är den enda bra applikationen en som bara gör en sak och sedan stänger sig när den är klar. Detta är opraktiskt ur användarens synvinkel; föreställ dig en tangentbord-app som stängdes efter att varje bokstav hade skrivits in. De företag som tillverkar de telefoner vi älskar måste hitta ett lyckligt medium mellan funktioner och prestanda genom att använda rätt hårdvara eller skära ner funktioner i appar. Det kan innebära att du lägger till mer RAM och använder en snabbare processor eller beskärningsfunktioner från en app, eller båda.
En annan del av de "extra" funktionerna är programvara som måste kunna hantera flera (och ofta konkurrerande) standarder. Dina e-postapplikationer är ett bra exempel på detta. Om du använder Gmail och använder Gmail-appen är saker och ting mycket mer strömlinjeformade än de skulle vara om du använder den andra e-appen med ett Gmail-konto eller ett Exchange-konto eller något liknande en Yahoo! POP3-konto. E-post-appen måste kunna göra saker som Gmail-appen inte kan, och måste kunna hantera olika typer av data vi skapar. Det tar tid att bearbeta och när vi lägger till mer data tar det mer tid.
Kanske det bästa exemplet på "extra" funktioner och hur de påverkar prestanda skulle vara att jämföra Evernote och Google Keep. Om du bara använder appen för att ta anteckningar, innebär alla extrafunktioner i Evernote att det tar mycket mer tid att lägga till eller läsa dem. Om du gillar dessa extrafunktioner kommer du snabbt att upptäcka att Google Keep bara inte kan göra de flesta av dem. Det finns inget rätt eller fel här, men det har stor inverkan på prestandan.
Oanvända "resterande" funktioner kan fortfarande köras och orsaka problem, och våra telefoner är fyllda med dem.
Oanvända funktioner är mer frustrerande eftersom vi inte vet att de är där och vi kunde inte göra någonting för att ändra saker om vi gjorde det. När ett företag som LG (vi väljer dem här, men det gäller alla företag som gör telefoner, till och med Google) gör en telefon med sina egna appar som är duplikat av "lager" android-appar som telefonuppringning eller kalender, det finns många restkoder som inte används. En del av koden körs fortfarande också när du startar din telefon. Vi har pratat om hur detta innebär att buggar blir svårare att hitta i den delen av koden, men det kan också ha stor inverkan på prestandan. Och när Software Entropy är inarbetat ser vi hur dessa buggar kan bli värre och värre med tiden.
När du ser dumma argument i kommentarer om hur en telefon som Moto G5 är snabbare än en Galaxy S8 med halva hårdvarukraften, är programvaran Bloat därför.
Så vad betyder allt detta och vad kan jag göra med det?
Det är en enkel fråga - det betyder att vissa telefoner är långsammare än andra och vissa telefoner blir märkbart långsammare med tiden medan andra är mindre påverkade. Och det finns egentligen ingenting vi kan göra åt det.
Fler funktioner innebär långsammare programvara och mer möjlighet för Bit Rot att hända. Det är en handel som många gärna gör.
Riktigt samtal - en telefon som Note 8 är märkbart långsammare (och visar den när den är ansluten till verktyg som övervakar prestanda) än en Pixel 2. Not 8 kommer att bli ännu långsammare sex månader eller längre ner på vägen. Men Pixel 2 kommer aldrig att kunna göra några av de saker en Note 8 gör, oavsett hur många appar vi installerar eller hur vi hackar skiten ur den. Jag kan kommentera en skärmdump med S-penna omedelbart efter att jag tagit in den på Note 8, men på Pixel 2 måste jag dela skärmdumpen till en annan enhet för att kommentera den med samma nivå av funktioner och detaljer.
Som argumentet Evernote kontra Google Keep ovan, är det som är bättre till stor del en fråga om funktioner som du gillar. Not 8 har alla funktioner. Detta innebär att den har alla buggar och mjukvaruuppblåsning som gör Bit Rot mer synlig. Detta kan vara ett problem för dig, men för andra är det inte för att det inte finns något annat sätt att få funktionsuppsättningen. Det är därför det finns fler Android-telefoner än bara en Pixel och Pixel Plus och vad alla menar när de säger att Android ger dig ett val.
Och när Bit Rot någonsin blir tillräckligt med problem att du behöver göra något åt det, återställer du bara telefonen och tar några timmar för att ställa in allt igen.
Frågor?
Ljud av i kommentarerna nedan!