Software aufblähen

Software aufblähen ist ein Prozess, bei dem aufeinanderfolgende Versionen von a Computer Programm wahrnehmbar langsamer werden, mehr Speicher verwenden, Festplattenplatz oder Verarbeitungsleistung oder höhere Hardwareanforderungen als die früher Feature Creep. Der Begriff wird nicht konsequent angewendet; es wird oft als abwertend von verwendet von Endverbraucher (Bloatware), um unerwünscht zu beschreiben Benutzeroberfläche Änderungen, auch wenn diese Änderungen nur wenig oder gar keinen Einfluss auf die Hardwareanforderungen hatten. In langlebiger Software kann das wahrgenommene Bloat aus der Software auftreten, die einen großen, vielfältigen Markt mit vielen unterschiedlichen Anforderungen bedient. Die meisten Endbenutzer sind der Meinung, dass sie nur eine begrenzte Teilmenge der verfügbaren Funktionen benötigen, und betrachten die anderen als unnötiges Aufblähen, selbst wenn Endbenutzer mit unterschiedlichen Anforderungen diese Funktionen erfordern.

Tatsächlicher (messbarer) Aufblähen kann aufgrund der Bewertung auftreten Algorithmische Effizienz zugunsten anderer Bedenken wie der Entwicklerproduktivität oder möglicherweise durch die Einführung neuer Abstraktionsebenen wie a virtuelle Maschine oder andere Skriptmotor Für die Zwecke der Bequemlichkeit, wenn Entwicklerbeschränkungen verringert werden. Die Wahrnehmung einer verbesserten Entwicklerproduktivität im Falle einer praktizierenden Entwicklung in virtuellen Maschinenumgebungen ergibt sich aus den Entwicklern, die Ressourcenbeschränkungen und die Verwendung während des Designs und der Entwicklung nicht mehr berücksichtigen. Auf diese Weise kann das Produkt schneller abgeschlossen werden, es führt jedoch zu einer Erhöhung der Hardwareanforderungen des Endbenutzers, um sie zu kompensieren.

Der Begriff "Bloatware" wird auch verwendet, um unerwünscht zu beschreiben Vorinstallierte Software oder gebündelte Programme.[1]

Arten von Blähungen

Programm aufblähen

Bei der Computerprogrammierung bezieht sich Code Bloat auf das Vorhandensein eines Programmcode (Quellcode oder Maschinencode), der als unnötig lang, langsam oder anderweitig Ressourcen verschwendet wird.

Bibliothek aufblähen

Die Bibliotheksblähung bezieht sich auf Bibliotheken, die im Build -Skript deklariert oder verwendet werden, während sie für die Ausführung der Softwareanwendung nicht erforderlich sind.[2] Eine Bibliothek, die in einem Projekt aufgebläht wird, bleibt sehr wahrscheinlich in zukünftigen Entwicklungen des Projekts aufgebläht, was die Wartungsaufwand künstlich erhöht, da Entwickler diese aufgeblähten Abhängigkeiten beibehalten werden.[3]

Ursachen

Software -Ineffizienz

Softwareentwickler In den 1970er Jahren waren in der Branche beteiligt. Jeder Byte und Taktzyklus wurde berücksichtigt, und es wurde viel Arbeit in die Anpassung der Programme in verfügbare Ressourcen eingereicht. Das Erreichen dieser Effizienz war einer der höchsten Werte von Computerprogrammierern, und die besten Programme wurden oft genannt "elegant", Ein Begriff, den Mathematiker verwendet, um einen Beweis zu beschreiben, der ordentlich, sparsam und mächtig ist.

Bis zum 21. Jahrhundert hatte sich die Situation umgekehrt. Die Ressourcen wurden als billig und schnelle Codierungs- und Schlagzeilenfunktionen für Marketing als Prioritäten angesehen.[4] Dies liegt zum Teil daran, dass technologische Fortschritte seitdem die Verarbeitungskapazität und die Speicherdichte durch Größenordnungen erhöht haben und gleichzeitig die relativen Kosten um ähnliche Größenordnungen verringern (siehe Moores Gesetz). Darüber hinaus hat die Verbreitung von Computern auf allen Geschäftsebenen und Heimleben eine Softwareindustrie hervorgebracht, die um ein Vielfaches größer ist als in den 1970er Jahren. Programme werden in der Regel von Teams aufgewendet, die von Ausschüssen in Softwareentwicklungsstudios (auch als Softwarehäuser oder Softwarefabriken bezeichnet) geleitet werden, in denen jeder Programmierer nur an einem oder mehreren Teil der Ganzen arbeitet Unterroutinen.

Schließlich führen Softwareentwicklungstools und -Ansätze häufig zu Änderungen in einem Programm, um jeder Funktion zu berücksichtigen, was zu einer großen Einbeziehung von Code führt, die den Hauptbetrieb der Software beeinflusst, und ist erforderlich, um Funktionen zu unterstützen, die selbst nur sein können selten genutzt. Insbesondere haben die Fortschritte in den verfügbaren Ressourcen zu Tools geführt, die eine einfachere Entwicklung des CODE ermöglichen, was wiederum weniger Priorität für die Endeffizienz ermöglicht.

Eine weitere Ursache für das Aufblähen ist unabhängig konkurrierende Standards und Produkte, die eine Integrationsnachfrage schaffen können. Es gibt jetzt mehr Betriebssysteme, Browser, Protokolle und Speicherformate als zuvor, was in Programmen aufgrund von Interoperabilitätsproblemen aufbläht. Beispielsweise wird ein Programm, das einst nur im Textformat sparen konnte, jetzt gefordert, in HTML, XML, XLS, CSV, PDF, DOC und anderen Formaten zu sparen.

Niklaus Wirth hat die Situation in zusammengefasst Wirths Gesetz, was besagt, dass die Softwaregeschwindigkeit schneller abnimmt als die Hardware -Geschwindigkeit zunimmt.

In seinem Aufsatz von 2001 Strategiebrief IV: Bloatware und der 80/20 Mythos,[5] Joel Spolsky argumentiert, dass 80% der Benutzer nur 20% der Funktionen verwenden (eine Variante auf der Pareto -Prinzip), jeder verwendet unterschiedliche Funktionen. So erweisen sich "Lite" -Softwareausgaben für die meisten als nutzlos, da sie die ein oder zwei Besonderheiten verpassen, die in der "aufgeblähten" Version vorhanden sind. Spolsky fasst den Artikel mit einem Zitat durch Jamie Zawinski In Bezug auf die Mozilla Application Suite (die später wurde Seeaffe):

"Praktisch, wenn es wahr wäre, ist Mozilla nicht groß, weil es voller nutzloser Mist ist. Mozilla ist groß, weil Ihre Bedürfnisse groß sind. Ihre Bedürfnisse sind groß, weil das Internet groß ist. Es gibt viele kleine, schlanke Webbrowser Dort draußen, das übrigens fast nichts Nützliches tun.[6]

Software -Aufblähen kann auch ein Symptom der Effekt des zweiten Systems, beschrieben von Fred Brooks in Der mythische Mannmonatsmonat.

Bloatware

Der Begriff "Bloatware" kann auf Software angewendet werden, die durch Ineffizienz oder Akkretion von Funktionen wie oben beschrieben geworden ist.[5] Der Begriff bezieht sich allgemein auch auf Software vorinstalliert Auf einem Gerät, normalerweise vom Hardware -Hersteller, ist das vom Käufer meist unerwünscht.

Der Begriff kann auch auf die Akkumulation von unerwünschten und nicht verwendeten Softwareelementen angewendet werden Deinstallation. Diese Elemente können ganze Programme, Bibliotheken, zugehörige Konfigurationsinformationen oder andere Daten umfassen. Die Leistung kann sich insgesamt infolge solcher Anfragungen verschlechtern, da die unerwünschten Software- oder Softwarekomponenten Speicher und Abfallzeitverarbeitungszeit, Fügen Sie die Festplatte hinzufügen können I/oSpeicher speichern und Verzögerungen bei Systemstart und Herunterfahren verursachen. In den schlimmsten Fällen kann die übrig gebliebene Software den richtigen Betrieb der gesuchten Software beeinträchtigen.[7] Bloatware kann leicht entfernt werden, wenn der Benutzer einen Root -Zugriff auf seinem Gerät hat. Der Rooting -Prozess hat jedoch seine eigenen Vor- und Nachteile.[8] wie die Garantie des Herstellers und diese bestimmte Software weigert sich, auf verwurzelte Geräte auszuführen.

Beispiele

Vergleich von Microsoft Windows minimale Hardwareanforderungen (für x86 Versionen)
Windows -Version Prozessor Erinnerung Festplatte
Windows 95[9] 25 MHz 4 MB ~ 50 MB
Windows 98[10] 66 MHz 16 MB ~ 200 MB
Windows 2000[11] 133 MHz 32 MB 650 MB
Windows XP[12] (2001) 233 MHz 64 MB 1,5 GB
Windows Vista[13] (2007) 800 MHz 512 MB 15 GB
Windows 7[14] (2009) 1 GHz 1 GB 16 Gigabyte
Windows 8[15] (2012) 1 GHz 1 GB 16 Gigabyte
Windows 10[16] (2015) 1 GHz 1 GB 16 Gigabyte
Windows 11[17] (2021) 1 GHz

64-Bit Dual-Core

4GB 64 GB

Apfel's iTunes wurde beschuldigt, von den Bemühungen aufgebläht zu werden, es von einem einfachen Medienspieler zu einer E-Commerce- und Werbeplattform zu machen,[18][19] mit früheren PC Welt Der Herausgeber Ed Bott beschuldigt die Gesellschaft der Heuchelei bei seinen Werbeangriffen unter Windows für ähnliche Praktiken.[20] Im Jahr 2019 kündigte Apple die bevorstehende Schließung des Programms an, ein Schritt, der von einem Kommentator von beschrieben wurde Der Wächter Als "längst überfälliger" und feststellte, dass das Programm "umgebläht wurde, ist eine auffällige Anomalie für ein Unternehmen, das sich auf elegantes und funktionelles Design stolz macht".[21]

Microsoft Windows wurde auch als aufgebläht kritisiert - unter Bezugnahme auf Windows Vista und diskutieren Sie die neuen, stark abgeschrägten Windows 7 -Kernkomponenten, Microsoft Engineer Eric Traut kommentierte: "Dies ist der Kern von Windows 7. Dies ist eine Sammlung von Komponenten, die wir herausgenommen haben[die?]. Viele Leute betrachten Windows als dieses wirklich große, aufgeblähte Betriebssystem, und das kann eine faire Charakterisierung sein, muss ich zugeben. Es ist gross. Es enthält eine Menge Dinge darin. Aber im Kern ist der Kernel und die Komponenten, aus denen der Kern des Betriebssystems besteht, ziemlich optimiert. "[22][23] Ed Bott drückte auch Skepsis aus und stellte fest, dass fast jedes Betriebssystem, das Microsoft jemals verkauft hat MS-DOS.[24] Bott zitierte Paul Thurrott und stimmte zu, dass die Aufblähung aus zahlreichen Funktionen auf Unternehmensebene stammt, die im Betriebssystem enthalten sind, die für den durchschnittlichen Heimnutzer weitgehend irrelevant waren.

CD- und DVD-Verbrennungsanwendungen wie z. Nero Burning ROM werden kritisiert, weil er aufgebläht wurde.[25] Überflüssige Funktionen, die nicht speziell auf den Endbenutzer zugeschnitten sind, werden manchmal standardmäßig über Express -Setups installiert.

Eine Reihe von Technologie -Blogs hat auch das Problem einer erhöhten Bloatware auf Mobiltelefonen behandelt. Sie beziehen sich jedoch auf ein anderes Problem, insbesondere auf das von Mobilfunkanbietern, die Telefone mit Software laden, die in vielen Fällen nicht einfach, wenn überhaupt, einfach nicht gelöscht werden können. Dies wurde am häufigsten in Bezug auf Android Geräte, obwohl dieses Phänomen auf Telefonen vorhanden ist, die viele andere Betriebssysteme ausführen.[26][27]

Einige der beliebtesten Strom Messaging -Apps, die sich zuvor nur darauf konzentrierten Instant Messaging, wurden dafür kritisiert, dass sie aufgrund von Kriechen aufgebläht wurden.[28][29][30][31] Wechat Zusätzliche Funktionen wie Spiele, Abonnementdienste, Dienste, Wechat Pay e-wallet,[28]a Nachrichtenaggregator, E-Commerce Hub, E-Government[29] Feature, Kinobuchungssystem, Restaurant Finder und Mitfahrunternehmen,[31] Dies hat die Größe der App von 2 MB im Jahr 2011 auf 58 MB im Jahr 2018 erhöht. Facebook Messenger, was von der getrennt wurde Facebook App, wird in ähnlicher Weise kritisiert, um zusätzliche Funktionen wie Spiele, Bots und Funktionen hinzuzufügen, aus denen kopiert wurde Snapchat wie Messenger Day (Geschichten), Gesichtsfilter, eine Kamera mit der Möglichkeit, Fotos zu bearbeiten, Doodle Draw und hinzugefügt Emojis und Aufkleber.[32][33] Im Januar 2018 der Leiter von Facebook Messaging, David A. Marcus, gab zu, dass die App selbst extrem aufgebläht ist und versprochen hat, die gesamte App neu zu gestalten, um unnötige Funktionen zu entfernen und zu optimieren.[30] Die neu gestaltete und optimierte Facebook Messenger -App wurde im Oktober 2018 bekannt gegeben, in dem ihre Funktionen auf Messaging, Geschichten, Discover Tab und Kamera reduziert werden.[34]

Alternativen

Einige Anwendungen wie z. Gimp, und Software mit zusätzlichen Funktionen von PluginsVerwenden Sie Erweiterungen oder Add-Ons, die getrennt von der Hauptanwendung heruntergeladen werden. Diese können entweder vom Softwareentwickler oder von Drittentwicklern erstellt werden. Plug-Ins, Erweiterungen und Add-Ons fügen zusätzliche Funktionen hinzu, die im Hauptprogramm ansonsten möglicherweise verpackt worden sein könnte.

Wenn diese Plug-Ins, Erweiterungen und/oder Add-Ons den Speicherplatz reduzieren, der auf einer Maschine verwendet wird, da die Anwendung, die "Plug-in-Schnittstelle" und alle Plug-Ins kombiniert sind, sind sie größer als die gleiche Funktionalität Zusammengestellt in eine monolithische Anwendung ermöglicht es jedem Benutzer, nur die jeweiligen Add-On-Funktionen zu installieren, anstatt jeden Benutzer zu zwingen, eine viel größere monolithische Anwendung zu installieren, die alle verfügbaren Funktionen enthält. Dies führt zu einer "abgespeckten" oder "Out-of-the-Box" -Anwendung, die in einem kompakten Paket geliefert wird, aber für Benutzer bereit ist, fehlende Funktionen hinzuzufügen.

Quelloffene Software kann eine ähnliche Technik verwenden Präprozessor -Richtlinien So selektiv Funktionen zum Kompilierenzeitpunkt einbezogen. Dies ist einfacher zu implementieren und sicherer als ein Plugin -System, hat jedoch den Nachteil, dass ein Benutzer, der eine bestimmte Funktionsgruppe wünscht, das Programm aus der Quelle zusammenstellen muss.

Manchmal wird Software wegen "aufgebläht"kriechender Merkmal"[35] (Zawinskis Software -Umhüllungsgesetz). Eine Möglichkeit, diese Art von Aufblähen zu reduzieren, wird von der beschrieben Unix -Philosophie von "Schreiben von Programmen, die eine Sache machen und es gut machen" und ein einzelnes, kompliziertes Stück Software in zahlreiche einfachere Komponenten zu brechen, die mit Verwendung miteinander verkettet werden können Rohre, Shell -Skripteoder andere Formen von Interapplikationskommunikation.

Siehe auch

Verweise

  1. ^ Whatisbloatware.com
  2. ^ Soto-Valero, César; Harrand, Nicolas; Monperrus, Martin; Baudry, Benoit (2021). "Eine umfassende Studie über aufgeblähte Abhängigkeiten im Maven -Ökosystem". Empirische Software -Engineering. 26 (3): 45. Arxiv:2001.07808. doi:10.1007/s10664-020-09914-8. ISSN 1382-3256. S2CID 210859213.
  3. ^ Soto-Valero, César; Durieux, Thomas; Baudry, Benoit (23. August 2021). "Eine Längsschnittanalyse von aufgeblähten Java -Abhängigkeiten". Proceedings des 29. ACM -gemeinsamen Treffens zur europäischen Software -Engineering -Konferenz und zum Symposium zu den Grundlagen der Software -Engineering. ESEC/FSE 2021. Athen Griechenland: ACM: 1021–1031. Arxiv:2105.14226. doi:10.1145/3468264.3468589. ISBN 978-1-4503-8562-6. S2CID 235254199.
  4. ^ Raymond, Eric S. (17. September 2003). Die Kunst der Unix -Programmierung (1 ed.). Addison-Wesley Professional. ISBN 0131429019. Abgerufen 16. Juni 2007. (Siehe auch: Die Kunst der Unix -Programmierung)
  5. ^ a b Spolsky, Joel (2001). "Strategiebrief IV: Bloatware und der 80/20 Mythos - Joel on Software". Abgerufen 2. Oktober 2006.
  6. ^ Zawinski, Jamie (1998). "Ostereier". Abgerufen 9. Januar 2008.
  7. ^ Santo Domingo, Joel (13. Februar 2012). "So entfernen Sie Bloatware". PC Magazine.
  8. ^ Mukesh, Bhavesh (4. März 2016). "Vor- und Nachteile von Android -Smartphones" Rooting von Android Smartphones ". Das Android -Portal.
  9. ^ "Microsoft KB: Windows 95 Installationsanforderungen". Abgerufen 22. Juli 2007.
  10. ^ "Microsoft KB: Minimale Hardwareanforderungen für eine Windows 98 -Installation". Abgerufen 22. Juli 2007.
  11. ^ "Windows 2000 Server Erste Schritte: Kapitel 3 - Planung Ihrer Windows 2000 -Serverinstallation". Microsoft. Abgerufen 29. August 2007.
  12. ^ "Microsoft KB: Systemanforderungen für Windows XP -Betriebssysteme". Abgerufen 22. Juli 2007.
  13. ^ "Microsoft KB: Systemanforderungen für Windows Vista". Abgerufen 22. Juli 2007.
  14. ^ "Microsoft: Systemanforderungen für Windows 7". Abgerufen 9. Oktober 2009.
  15. ^ "Windows 8 Release Preview ISO -Bilder". Abgerufen 12. August 2012. Windows 8 Release Preview funktioniert hervorragend für die gleiche Hardware, die Windows 7 versorgt
  16. ^ "7 Dinge, die Sie sich erinnern sollten, wenn Sie die Windows 10 -Vorschau ausprobieren.". Computerworld.com. Oktober 2014. Abgerufen 29. März 2015.
  17. ^ Lawler, Richard (24. Juni 2021). "Microsoft ändert die Windows 11 -Mindestanforderungen". Der Verge. Abgerufen 25. Juni 2021.
  18. ^ Streza, Steve (7. März 2007). "Was ist mit iTunes passiert?".
  19. ^ Buchanan, Matt (12. Oktober 2009). "iTunes 9 wird ein aufgeblähtes soziales Monster sein". Gizmodo. Abgerufen 14. Januar 2010.
  20. ^ Bott, Ed (3. Oktober 2008). "Das aufgeblähte iTunes -Installateur abnehmen". ZDNET. Abgerufen 14. Januar 2010.
  21. ^ Naughton, John (9. März 2019). "Damals, iTunes, und danke, dass Sie die Musikindustrie vor sich selbst gerettet haben.". Der Wächter. Abgerufen 10. März 2019.
  22. ^ McDougall, Paul (28. Januar 2008). "Software -Tool streift Windows Vista in bloße Knochen". InformationWeek.com.
  23. ^ Bott, Ed (31. März 2008). "Ist Minwin wirklich der neue Windows 7 -Kernel?". ZDNET.
  24. ^ Bott, Ed (13. März 2006). "Windows aufblähen? Es war schon immer so". ZDNET.
  25. ^ Cassia, Fernando (27. Februar 2007). "'Nero Lite' und 'Nero Micro': kleiner ist manchmal besser. ". Der Anfragen. Archiviert vom Original am 2. März 2007. Abgerufen 7. März 2007.{{}}: CS1 Wartung: Ungeeignete URL (Link)
  26. ^ Gartenberg, Michael (12. September 2010). "Entelligence: Werden Träger die Android -Vision zerstören?". Engadget. Abgerufen 21. September 2010.
  27. ^ Milian, Mark (15. Juni 2010). "'Junkware' ist Standard auf Verizon, T-Mobile-Smartphones.. Los Angeles Zeiten. Abgerufen 21. September 2010.
  28. ^ a b Bischoff, Paul (12. Februar 2014). "Was WeChat von Facebook lernen muss". Technik in Asien. Abgerufen 16. Februar 2020.
  29. ^ a b Chen, Laurie (22. Juli 2018). "Warum Chinas technisch versierte Millennials wechat aufgeben". Süd China morgen Post. Hongkong. Abgerufen 16. Februar 2020.
  30. ^ a b Constine, Josh (16. Januar 2018). "Aufgeblähter Facebook Messenger verspricht, 2018 zu vereinfachen". Techcrunch. Abgerufen 16. Februar 2020.
  31. ^ a b "Facebook öffnet Messenger für Apps von Drittanbietern". BBC. 25. März 2015. Abgerufen 16. Februar 2020.
  32. ^ Brown, Aaron (7. Februar 2017). "Facebook hat WhatsApp fast ruiniert, und jetzt hat es Messenger ruiniert". Täglicher Express. Abgerufen 16. Februar 2020.
  33. ^ Welch, Chris (18. Mai 2017). "So ersetzen Sie Facebook Messenger durch eine viel einfachere, leichtere Version". Der Verge. Abgerufen 16. Februar 2020.
  34. ^ Preis, Rob (23. Oktober 2018). "Facebook gibt Messenger eine Überholung, um zu versuchen, das Aufblähen zu reduzieren - und einen dunklen Modus hinzuzufügen.". Geschäftseingeweihter. Abgerufen 16. Februar 2020.
  35. ^ Adams, Ernest (1. Mai 2007). "Das Notizbuch des Designers:" Creeping Featurism produziert ein aufgeblähtes, kompliziertes Durcheinander. ".