Verbesserung der Performance dank neuer Techniken für den Rendering-Prozess

Release von Atom 1.0 markiert Meilenstein für den Text-Editor
Kommentare

Was ursprünglich als Nebenprojekt von GitHub-Gründer Chris Wanstrath begann, feiert nach gerade einmal einem Jahr nun bereits den ersten Meilenstein: der Text-Editor Atom ist in Version 1.0 erschienen. 155 Releases nach dem ersten Launch hat sich das ursprünglich Atomicity genannte Projekt zu dem entwickelt, was der Erfinder sich vorgestellt hat – nämlich einen Text-Editor, der Entwicklern die vollständige Kontrolle über ihren Editor erlaubt.

Dafür wurden umfangreiche Verbesserungen der Performance, Stabilität, Modulariät und bei den Feature-Sets vorgenommen; dazu kommen über 2.000 von der Community entwickelte Packages wie der Linter, autocomplete-plus oder Minimap. In einem Blogpost beschreibt Ben Ogle den Weg zu Atom 1.0.

Das kann Atom 1.0

Innerhalb eines Jahres hat sich Atom zu einem Text-Editor mit umfangreichen Feature-Sets entwickelt, die mittlerweile auch für andere Projekte wie die kürzlich Open Source zur Verfügung gestellte Nuclide-IDE die Basis bilden. Gerade was die Performance angeht, wurden zahlreiche Verbesserungen vorgenommen; zudem ist Atom 1.0 im Vergleich zum ersten Launch dank eines stabileren APIs, eingebautem ECMAScript-6-Support mit Babel oder neuen Themes deutlich modularer.

Ursprünglich wurde bereits 2008 mit einer frühen Version von Atom – damals noch Atomicity genannt – begonnen, die zunächst zugunsten der Arbeit an GitHub ad acta gelegt wurde. Erst als niemand sonst einen auf Web-Technologien basierenden Desktop-Editor veröffentlichte, wurde die Arbeit an Atom wieder aufgenommen. Im Februar 2014 als Public-Beta erschienen und kurze Zeit später Open Source verfügbar gemacht, feiert der Editor nun mit dem Release  von Version 1.0 den ersten großen Meilenstein – und will dem noch viele weitere folgen lassen.

Auf der To-Do-Liste steht neben der weiteren Feinarbeit an der Plattform und der Core-User-Experience natürlich die weitere Verbesserung der Performance und der Stabilität, aber auch die Implementierung eines internationalen Supports und noch viel mehr ist bereits geplant. Dazu sagt Ben Ogle:

Until now, work has largely gone into defining the 1.0 foundation. Now that the foundation is stable, we can shift our efforts to reaching the full potential of the platform.

Atom 1.0 steht auf der Projekt-Website zum Download zur Verfügung; dort finden sich zudem auch ausführliche API-Docs sowie Demos und Tutorials zur Nutzung des Text-Editors.

Performance- und Rendering-Verbesserungen in Atom

Die Performance des Text-Editors ist überhaupt ein gutes Stichwort und an deren Verbesserung wurde beim Atom-Entwicklerteam gerade in den letzen Monaten fleißig gearbeitet. Dafür wurden einige neue Techniken eingesetzt, die den Rendering-Prozess deutlich beschleunigen sollen. Dazu gehört, den DOM so klein wie möglich zu halten, indem nur sichtbare Zeilen gerendert werden und absolute Koordinaten für sie zu verwenden.

Um dabei allerdings dabei eine zu große Belastung des GPUs zu verhindern, werden Zeilen in Atom als Tiles anstatt als individuelle Entities angesehen. Dafür werden willkürliche Mengen an Zeilen als Tiles zusammengefasst, jedes Tile in einem seperaten GPU-Layer platziert und jede Zeile mit absoluten Koordinaten im entsprechenden Tile positioniert. Zudem wird das Scrolling simuliert, indem jedes Tile mit transform3d übersetzt wird.

So hat die GPU weniger Last und die Paint-Time verringert sich, wenn neue Tiles auf dem Bildschirm erscheinen. Zudem wird auch die Cleanup-Zeit reduziert, weil ganze Tile-Nodes anstatt nur einzelner Zeilen gelöscht werden. Mehr Informationen dazu finden sich in einem Blogpost, in dem Antonio Scandurra die Verbesserungen der Atom-Rendering-Architektur vorgestellt hat.

Aufmacherbild: Colorful atom model von Shutterstock / Urheberrecht: kropaman

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -