Green Frontend: Energieeffizienz steigern und Hardware schonen
Von David Kopp, Jan Kirchner
Mit Blick auf den rasant fortschreitenden menschengemachten Klimawandel und dessen Begrenzung auf 1,5° C oder zumindest auf 2,0° C, ist eine schnellstmögliche Minimierung der Treibhausgasemissionen von entscheidender Bedeutung. Der Sektor der Informations- und Kommunikationstechnologie (IKT) trug im Jahr 2020 einen bedeutenden Anteil von 1,4 % zu den weltweiten Emissionen bei (Malmodin et al. 2023). In dieser Zahl sind verwandte Bereiche wie die elektronische Unterhaltungsindustrie (z. B. Fernseher), Drucker und Kryptowährungen nicht enthalten. Es ist davon auszugehen, dass die Emissionen aufgrund der steigenden Nachfrage nach digitalen Diensten und Geräten, dem Aufkommen ressourcenhungriger KI-Systeme und dem rasanten Infrastrukturzubau von Rechenzentren seither gestiegen sind und in den kommenden Jahren weiter steigen werden. Die Internationale Energieagentur (IEA) geht davon aus, dass der Energieverbrauch von Rechenzentren, KI und Kryptowährungen in nur 4 Jahren von 460 TWh im Jahr 2022 auf 620 bis 1050 TWh in 2026 ansteigen wird (IEA 2024).
Software trägt maßgeblich zum Energieverbrauch und den Treibhausgasemissionen des IKT-Sektors bei. Zum einen, weil Software die Auslastung der Hardwarekomponenten bestimmt, was zu einem Verbrauch von elektrischer Energie führt, und zum anderen, durch erhöhte Anforderungen an die Hardware, was zu einem Anstieg der eingebetteten Kohlenstoffemissionen (Embodied Carbon Emissions) durch die Herstellung und Entsorgung der Hardwarekomponenten führt. Die Softwareentwicklung sollte dementsprechend ihren Teil dazu beitragen, diese negativen Auswirkungen zu minimieren.
Das relativ junge Feld der Green IT beschäftigt sich mit Themen wie energie- und ressourceneffiziente Software, Carbon Aware Computing und insbesondere auch mit der Messung des Energieverbrauchs von Software. In den letzten Jahren wurde hierzu bereits eine Reihe verschiedener Tools veröffentlicht. Obwohl verschiedene Tools zur groben Abschätzung des CO₂-Fußabdrucks von Webseiten verfügbar sind, liegt der Fokus meist auf der serverseitigen Messung und Optimierung von Software.
Vor diesem Hintergrund stellt sich die Frage, wie relevant die Messung und Optimierung des Frontends bei typischen Client-Server-Anwendungen im Vergleich zum Backend ist. Macht es Sinn, auch die Auswirkungen des Frontends genauer zu betrachten oder sind dessen ökologischen Auswirkungen vergleichsweise marginal? Und wenn wir uns dafür entscheiden, welche Möglichkeiten haben wir dann zur Messung von Software im Frontend und wie könnte das konkret aussehen?
Diesen Fragen wollen wir uns in diesem Artikel und zwei weiteren zukünftigen Artikeln auf diesem Blog widmen. In diesem ersten Teil der Artikelserie beleuchten wir die Relevanz von clientseitiger Software für den ökologischen Fußabdruck und die wichtigsten Einflussfaktoren.
Wie relevant ist das Frontend für den ökologischen Fußabdruck?
Der IKT-Sektor kann grob in drei Segmente unterteilt werden: Rechenzentren, Netzwerkinfrastruktur und Endgeräte. Zu den Endgeräten zählen u.a. Smartphones, Tablets, Laptops und Desktop-Computer inkl. Displays. In einigen Studien werden auch Fernsehgeräte zum IKT-Sektor gezählt. Die Studie, die im Folgenden für die Auswirkungen der Endgeräte herangezogen wird, ordnet Fernsehgeräte jedoch dem Bereich der Unterhaltungselektronik zu, so dass diese bei der Betrachtung des IKT-Sektors nicht berücksichtigt werden.
Der Gesamtenergieverbrauch der drei Segmente teilt sich laut dem Sustainable Web Design Model (SWDM), das Daten aus mehreren wissenschaftlichen Studien zusammenfasst, wie folgt auf:
Rechenzentren | Netzwerk | Endgeräte |
---|---|---|
22% | 24% | 54% |
Die Endgeräte sind für den weitaus größten Teil des Energieverbrauchs verantwortlich. Dies liegt zum einen an der großen Masse der Geräte. Zum anderen trägt insbesondere die Herstellung der Geräte zu einem hohen Energieverbrauch bei, der besonders bei kleinen Endgeräten den Energieverbrauch während der Nutzung überwiegt. In der folgenden Tabelle sind die daraus resultierenden Treibhausgasemissionen nach Segmenten, unterteilt in betrieblich und eingebettet (embodied), dargestellt:
Rechenzentren | Netzwerk | Endgeräte | |
---|---|---|---|
Betrieblich | 82% | 82% | 49% |
Eingebettet (Embodied) | 18% | 18% | 51% |
Hinweis: Die errechneten Prozentwerte des SWDM weichen geringfügig von den Daten der Primärquelle Malmodin et al. 2023 ab, da für den Energieverbrauch der Rechenzentren und der Netzwerke höhere Werte angenommen wurden (Primärquelle hierfür ist IEA 2022).
Bei den Endgeräten machen die eingebetteten Emissionen, die zu einem großen Teil durch die Herstellung der Geräte verursacht werden, knapp die Hälfte der Emissionen aus. Bei den Rechenzentren und in der Netzwerkinfrastruktur machen die betrieblichen Emissionen mit jeweils 82 % den größten Anteil aus. Bei den Endgeräten ist der Anteil der eingebetteten Emissionen im Vergleich zu Rechenzentren und Netzwerkinfrastruktur besonders hoch, da
- sie weniger genutzt werden (ein Smartphone wird z.B. nicht ständig aktiv genutzt),
- sie im Betrieb weniger Energie benötigen,
- und sie häufiger ausgetauscht werden.
Um Treibhausgasemissionen bei Endgeräten einzusparen, ist es wichtig, diese möglichst lange zu nutzen. Die Verantwortung liegt jedoch nicht allein bei den Endverbraucher:innen. Auch Softwareentwickler:innen tragen dazu bei, dass Geräte frühzeitig ausgetauscht werden, insbesondere wenn neue Softwareanwendungen mehr Ressourcen beanspruchen und diese auf älteren Geräten kaum oder gar nicht mehr ausgeführt werden können. Bei batteriebetriebenen Geräten hängt die Lebensdauer mitunter auch davon ab, wie lange die Batterie noch eine akzeptable Kapazität aufweist (zumindest dann, wenn kein Batterietausch möglich ist). Daher gilt: Je mehr Energie im Alltag verbraucht wird, desto schneller sinkt die Batteriekapazität und potenziell auch die Lebensdauer des gesamten Gerätes.
Bei der Entwicklung und Wartung von (mobilen) Softwareanwendungen ist es daher wichtig, die Ressourcen- und Energieeffizienz im Blick zu behalten und zu optimieren; nicht nur um Energie bei der Nutzung zu sparen, sondern auch um eine lange Lebensdauer der Geräte zu ermöglichen.
Welche Faktoren beeinflussen die Energieeffizienz im Frontend?
Wenn wir den Energieverbrauch von Frontend-Software messen und optimieren wollen, ist es zunächst wichtig zu verstehen, welche Faktoren dabei zu berücksichtigen sind. Der Artikel How Web Content Can Affect Power Usage, der im Blog der WebKit-Browserengine veröffentlicht wurde, beleuchtet dieses Thema bereits für Webseiten und Webanwendungen. Viele der Erkenntnisse lassen sich auch auf andere Arten von Frontend-Software wie Desktop- oder mobile Anwendungen übertragen.
Beim Besuch einer Website auf einem Smartphone oder einem anderen mobilen Gerät wird die Energie hauptsächlich von vier Komponenten verbraucht:
- CPU
- GPU
- Netzwerk (Wi-Fi und Mobilfunkchips)
- Bildschirm
Der Energieverbrauch des Bildschirms ist relativ konstant und wird durch Benutzereinstellungen wie Helligkeit und Einschaltzeit gesteuert. Im Gegensatz dazu verbrauchen CPU, GPU und Netzwerkkarten dynamisch Strom, abhängig von der Auslastung. Gerade bei mobilen Geräten gilt: Je weniger die Hardware beansprucht wird, desto geringer ist der Energieverbrauch.
Der wichtigste Faktor bei der Optimierung der Energieeffizienz einer Webanwendung ist die Minimierung der CPU-Nutzung. Die CPU wird durch das Laden, Parsen, Rendern und vor allem durch die Ausführung von JavaScript beansprucht. Da moderne Websites oft mehr Zeit für JavaScript als für andere Ladeprozesse benötigen, sollte die Ausführungszeit von JavaScript so kurz wie möglich gehalten werden. Auch Layoutänderungen und Animationen (Painting) sollten sparsam eingesetzt werden, um CPU und GPU zu entlasten.
Um den Energieverbrauch der Netzwerkkomponenten zu reduzieren, sollten grundsätzlich alle Best Practices zur Minimierung der Seitenladezeit umgesetzt werden. Dazu gehört insbesondere die maximale Nutzung des Browser-Caches. Darüber hinaus verbessert die zeitliche Bündelung von Netzwerkanfragen die Effizienz, da so vermieden wird, dass die Netzwerkhardware unnötig oft aktiviert wird.
Der Artikel im WebKit-Blog gibt weitere hilfreiche Tipps, wie die Energieeffizienz bei der Entwicklung konkret verbessert werden kann und wie mögliche Probleme und deren Ursachen identifiziert werden können.
Relevanz der Netzwerkkommunikation
Weniger Datentransfer schont tendenziell den Akku eines mobilen Endgerätes durch weniger Aktivität der Netzwerkkomponenten und weniger Verarbeitungsbedarf durch die CPU. Aber wie wirkt sich ein Mehr oder Weniger an Datentransfer auf den CO₂-Fußabdruck der Netzwerkinfrastruktur aus?
Wie bereits erwähnt, hat das Netzwerksegment einen Anteil von 24 % an den globalen Emissionen des IKT-Sektors, wobei mit 82 % der größte Teil auf den Energieverbrauch im Betrieb entfällt. Die naheliegende Schlussfolgerung wäre, dass eine Reduktion des Datentransfers einer Webanwendung direkt zu einer ähnlich großen Reduktion des Energieverbrauchs der Netzwerkinfrastruktur führt. Dies ist jedoch nicht notwendigerweise der Fall. Netzwerkkomponenten wie z.B. Switches verbrauchen den größten Teil der Energie bereits, wenn sie nur eingeschaltet sind. Eine höhere Auslastung durch mehr Datentransfer wirkt sich nur marginal auf den Energieverbrauch aus (Jakob & Vanbever 2023). Eine Reduktion des transferierten Datenvolumens führt daher nur dann zu relevanten Einsparungen, wenn Netzwerkgeräte abgeschaltet werden, was in der Praxis bisher nicht üblich ist.
Dennoch ist es wichtig, den Datentransfer so gering wie möglich zu halten. Die Netzwerkinfrastruktur wird stetig ausgebaut, um insbesondere Lastspitzen, die durch das ansteigende Datenvolumen zu bestimmten Zeitpunkten entstehen können, ohne Leistungseinbußen verarbeiten zu können. Eine Reduktion des Datenvolumens kann daher insbesondere zu einer Verlangsamung des weiteren Ausbaus beitragen, was im Sinne des Klimaschutzes zu begrüßen wäre.
Die Reduzierung der über das Netzwerk übertragenen Datenmenge ist daher sicherlich eine sinnvolle Maßnahme. Ob diese einzelne Maßnahme jedoch einen relevanten Beitrag zur Reduktion des CO₂-Fußabdrucks der eigenen Softwareanwendung leistet, kann nicht abschließend beantwortet, geschweige denn quantifiziert werden.
Viele Online-Tools zur Abschätzung der CO₂-Emissionen von Webseiten basieren auf einer reinen Approximation über die übertragene Datenmenge. Da jedoch, wie oben erläutert, der Energieverbrauch der Netzwerkkomponenten nicht proportional zum Datenvolumen steigt, weist diese Methodik jedoch große Schwächen auf (siehe hierzu auch Mytton et al. 2024). Welche alternativen Methodiken und Werkzeuge es für die Abschätzung des CO₂-Fußabdrucks von Webseiten gibt, werden wir in einem der folgenden Beiträge dieses Blogs thematisieren.
Fazit und Ausblick
Wir haben gesehen, dass der IKT-Sektor einen steigenden Energieverbrauch und einen wachsenden CO₂e-Fußabdruck hat und dass ein großer Teil der globalen Emissionen auf die Endgeräte zurückzuführen ist. Etwa die Hälfte davon entsteht während der Nutzung der Geräte, die andere Hälfte als eingebettete Emissionen bei der Herstellung und Entsorgung der Hardware. Die Optimierung der Energieeffizienz der clientseitigen Software kann helfen, die Emissionen in beiden Bereichen zu reduzieren: sowohl während der Nutzung durch einen geringeren Energiebedarf als auch bei den eingebetteten Emissionen durch eine längere Nutzung der Hardware.
Der Energiebedarf im Frontend wird im Wesentlichen durch die vier Komponenten CPU, GPU, Netzwerk und Bildschirm verursacht, wobei vor allem die CPU-Nutzung optimiert werden kann. Wie diese Faktoren gemessen werden können, damit werden wir uns im nächsten Artikel befassen. Gerade im Webbereich ist Performanceoptimierung kein neues Thema und es gibt bereits einige Werkzeuge, die helfen können. Wie wir sehen werden, gibt es darüber hinaus inzwischen aber auch Tools, die explizit die Umweltauswirkungen in den Blick nehmen.