Einleitung
In diesem Artikel präsentieren wir Ihnen einen Vergleich verschiedener Editoren, IDEs und eines Viewers. Wir werden uns dabei ansehen, wie diese Programme bei verschiedenen Dateien abschneiden und wie leistungsstark sie sind. Bei den Tests werden ausschließlich die Leistungsfaktoren Arbeitsspeicher und CPU-Zeit berücksichtigt, keine zusätzlichen Funktionen. Zunächst möchten wir Ihnen die durchgeführten Tests kurz vorstellen, bevor Sie eine kurze Zusammenfassung der Programme erhalten.
Der erste Test bezieht sich auf den Programmstart, insbesondere wie lange es dauert und wie viel Arbeitsspeicher genutzt wird. Der zweite Test beleuchtet, wie die Programme eine JSON-Datei öffnen und die Syntax hervorheben. Die Tests drei und vier untersuchen das Öffnen von TXT-Dateien in verschiedenen Größen. Im letzten Test sollen die Programme ein Wort, das N-mal vorkommt, durch einen Buchstaben ersetzen.
Wie testen wir?
Um die Werte, die in den Tabellen aufgeführt sind, zu erhalten, haben wir unter Windows den Task-Manager verwendet, um den RAM-Verbrauch zu überwachen. Die CPU-Zeit wurde mithilfe des folgenden Befehls in PowerShell ausgelesen:
(Get-Process -Id <process id>).Threads | Format-Table $Properties
Die Prozess ID haben wir ebenfalls im Taskmanager ausgelesen, der in der erweiterten Anzeige alle nötigen Daten anzeigt.
Programme
Programme | License | Version | Pragramming Language | Plugin System | GUI/TUI | Linux | MacOS X | Windows | Link |
---|---|---|---|---|---|---|---|---|---|
CudaText | MPL-2.0 | 1.186.2.0 | Object Pascal | x | GUI | x | x | x | https://cudatext.github.io/ |
Eclipse | Eclipse Public License | 4.26.0 | Java | x | GUI | x | x | x | https://www.eclipse.org/eclipseide/ |
EmEditor | Shareware | 22.2.2 | C++ | x | GUI | x | https://www.emeditor.com/ | ||
Geany | GPL-2.0 | 1.38 | C | x | GUI | x | x | x | https://geany.org/ |
Helix | MPL-2.0 | 22.08 | Rust | TUI | x | x | x | https://github.com/helix-editor/helix | |
IntelliJ CE | Apache License 2.0 | 2022.3.2 | Java | x | GUI | x | x | x | https://www.jetbrains.com/idea/ |
jEdit | GPL-2.0 | 5.6.0 | Java | x | GUI | x | x | x | http://jedit.org/ |
Kate | GPL | 22.12.2 | C++ | x | GUI | x | x | x | https://kate-editor.org/ |
Klogg | GPL-3.0 | 22.06.0.1289 | C++ | GUI | x | x | x | https://github.com/variar/klogg | |
Lapce | Apache License 2.0 | 0.2.5 | Rust | x | GUI | x | x | x | https://github.com/lapce/lapce |
NetBeans | Apache License 2.0 | 16 | Java | x | GUI | x | x | x | https://netbeans.apache.org/ |
Notepad++ | GPL-3.0 | 8.4.9 | C++ | x | GUI | x | https://notepad-plus-plus.org/ | ||
Notepad Next | GPL-3.0 | 0.6 | C++ | GUI | x | x | x | https://github.com/dail8859/NotepadNext | |
PSPad | Proprietary | 5.0.6 (589) | Object Pascal | x | GUI | x | http://www.pspad.com | ||
Proton | Freeware | 3.2 | Delphi | x | GUI | x | https://de.wikipedia.org/wiki/HTML-Editor_Phase_5 | ||
Sublime Text | Shareware | 4143 | C++, Python | x | GUI | x | x | x | https://www.sublimetext.com |
TextAdept | MIT | 11.4 | C, Lua | x | GUI | x | x | x | https://orbitalquark.github.io/textadept/ |
Visual Studio Code | Proprietary | 1.75.0 | JS, TS | x | GUI | x | x | x | https://code.visualstudio.com |
Windows Notepad | Proprietary | 11.2302.16.0 | C++, UWP | GUI | x | https://apps.microsoft.com/store/detail/windows-notepad/9MSMLRH6LZF3?hl=de-de&gl=de |
System
- Laptop: Schenker VIA 15 Pro
- Stromquelle: Netzbetrieb
- Energiestatus: Ausbalanciert (Windows Einstellung)
- Betriebssystem: Windows 11 Pro 22H2 22621.1265 64bit
- Prozessor: AMD Ryzen 7 5700U 1.80 GHz 8 Cores, 8MB L3 Cache
- Arbeitsspeicher: 32 GB (31,4 GB verwendbar)
- Festplatte: Samsung SSD 980 1TB
Start der Programme
Editoren | RAM in MB | Zeit in Sekunden | Rang | Transformation(RAM) | Transformation(time) | Add Transformation |
---|---|---|---|---|---|---|
CudaText | 18 | 0,109 | 4 | 4 | 2 | 6 |
EmEditor | 13 | 0,140 | 4 | 3 | 3 | 6 |
Geany | 25,2 | 1,000 | 11 | 5 | 14 | 19 |
Helix | 6 | 0,000 | 1 | 1 | 1 | 2 |
jEdit | 140 | 0,468 | 13 | 25 | 7 | 32 |
Kate | 54,7 | 0,347 | 10 | 10 | 5 | 15 |
Notepad Next | 18 | 0,031 | 3 | 4 | 1 | 5 |
Notepad++ | 8,6 | 0,203 | 4 | 2 | 4 | 6 |
Proton | 3,6 | 0,046 | 2 | 1 | 2 | 3 |
PSPad | 7,6 | 0,203 | 4 | 2 | 4 | 6 |
Sublime | 15 | 0,125 | 4 | 3 | 3 | 6 |
TextAdebt | 15,3 | 1,875 | 12 | 3 | 25 | 28 |
Windows Editor | 18,6 | 0,109 | 4 | 4 | 2 | 6 |
IDEs | ||||||
Eclipse | 433 | 10,000 | 3 | 8 | 12 | 20 |
Intellij IDEA | 1141 | 22,000 | 5 | 25 | 25 | 50 |
Lapce | 156 | 1,000 | 1 | 1 | 2 | 3 |
NetBeans | 437,6 | 1,859 | 4 | 8 | 3 | 11 |
VisualStudio Code | 300 | 0,390 | 2 | 5 | 1 | 6 |
Viewer | ||||||
Klogg | 9,6 | 0,062 | 1 |
Öffnen einer Datei mit Highlighting
Hier wurde eine 300MB JSON Datei benutzt.
Editoren | RAM in MB | Zeit in Sekunden | Kombinierter Rang | Transformation(RAM) | Transformation(time) | Add Transformation |
---|---|---|---|---|---|---|
CudaText | 130 | 0,187 | 4 | 5 | 1 | 6 |
EmEditor | 162,9 | 0,187 | 6 | 6 | 1 | 7 |
Geany | 743 | 30 | 12 | 25 | 6 | 31 |
Helix | 6 | 0 | 1 | 1 | 1 | 2 |
jEdit | 206 | 1 | 9 | 8 | 1 | 9 |
Kate | 298 | 0,25 | 10 | 11 | 1 | 12 |
Notepad Next | 82 | 0,078 | 2 | 3 | 1 | 4 |
Notepad++ | 70 | 0,406 | 2 | 3 | 1 | 4 |
Proton | 114 | 0,281 | 4 | 5 | 1 | 6 |
PSPad | 152 | 2 | 6 | 6 | 1 | 7 |
Sublime | 134 | 11 | 8 | 5 | 3 | 8 |
TextAdebt | 90 | 147 | 11 | 4 | 25 | 29 |
Windows Editor | - | - | 12 | 75 | ||
IDEs | ||||||
Eclipse | 5500 | 110 | 4 | 25 | 25 | 50 |
Intellij IDEA | - | - | 5 | 75 | ||
Lapce | 1260 | 15 | 1 | 1 | 1 | 2 |
NetBeans | 4700 | 109 | 3 | 20 | 25 | 45 |
VisualStudio Code | 1496 | 48 | 2 | 2 | 9 | 11 |
Viewer | ||||||
Klogg | 58 | 0,109 | 1 |
Öffnen einer mittelgroßen txt Datei
Hier wurde als Test eine 300MB txt Datei verwendet.
Editoren | RAM in MB | Zeit in Sekunden | Kombinierter Rang | Transformation(RAM) | Transformation(time) | Add Transformation |
---|---|---|---|---|---|---|
CudaText | 842 | 2 | 7 | 21 | 3 | 24 |
EmEditor | 74,5 | 0,421 | 1 | 1 | 1 | 2 |
Geany | 662 | 4 | 5 | 16 | 5 | 21 |
Helix | 360 | 0,171 | 2 | 8 | 1 | 9 |
jEdit | 830 | 3 | 8 | 21 | 4 | 25 |
Kate | 1000 | 4 | 10 | 25 | 5 | 30 |
Notepad Next | 709 | 0,109 | 4 | 17 | 1 | 18 |
Notepad++ | 337 | 0,218 | 2 | 8 | 1 | 9 |
Proton | 735,5 | 6 | 8 | 18 | 7 | 25 |
PSPad | 793 | 19 | 12 | 20 | 22 | 42 |
Sublime | 377 | 12 | 6 | 9 | 14 | 23 |
TextAdebt | 684 | 13 | 11 | 17 | 15 | 32 |
Windows Editor | 720 | 22 | 13 | 18 | 25 | 43 |
IDEs | ||||||
Eclipse | 2000 | 27 | 4 | 13 | 1 | 14 |
Intellij IDEA | 22 | 1181 | 1 | 1 | 25 | 51 |
Lapce | 894 | 5 | 3 | 6 | 1 | 7 |
NetBeans | 3900 | 55 | 5 | 25 | 2 | 27 |
VisualStudio Code | 627 | 7 | 2 | 5 | 1 | 6 |
Viewer | ||||||
Klogg | 112 | 0,031 | 1 |
Öffnen einer großen txt Datei
Bei diesem Test gingen wir bis zur Grenze einiger Editoren mit einer 2,4 GB großen TXT-Datei.
Editoren | RAM in MB | Zeit in Sekunden | Kombinierter Rang | Transformation(RAM) | Transformation(time) | Add Transformation |
---|---|---|---|---|---|---|
CudaText | 35 | 0,14 | 4 | 1 | 1 | 27 |
EmEditor | 158 | 6 | 1 | 2 | 2 | 4 |
Geany | - | - | 12 | 75 | ||
Helix | 3200 | 7 | 3 | 14 | 3 | 17 |
jEdit | - | - | 12 | 75 | ||
Kate | 5800 | 33 | 6 | 25 | 9 | 34 |
Notepad Next | 5484 | 16 | 5 | 24 | 5 | 29 |
Notepad++ | 2500 | 2,1 | 2 | 11 | 1 | 12 |
Proton | - | - | 12 | 75 | ||
PSPad | - | - | 12 | 75 | ||
Sublime | 3800 | 104 | 7 | 17 | 25 | 42 |
TextAdebt | - | - | 8 | 75 | ||
Windows Editor | - | - | 12 | 75 | ||
IDEs | ||||||
Eclipse | - | - | 3 | 75 | ||
Intellij IDEA | 1389 | 19 | 1 | 1 | 1 | 27 |
Lapce | 6600 | 26 | 2 | 25 | 25 | 50 |
NetBeans | - | - | 3 | 75 | ||
VisualStudio Code | - | - | 3 | 75 | ||
Viewer | ||||||
Klogg | 117 | 2 | 1 |
Zu beachten ist, dass der Windows Editor dynamisch nachlädt. Ob die anderen Editoren das auch tun ist uns nicht aufgefallen.
Außerdem sollte man erwähnen, das CudaText das Öffnen erfolgreich und schnell schafft, aber so große Dateien nicht bearbeiten kann, sondern nur als Viewer fungiert.
Search and Replace
Im Rahmen dieses Tests haben wir eine Datei mit einer Größe von 300 MB erstellt, welche das Wort “AlaskaLabs” 100.000-mal enthält. In dieser Datei sollen alle Vorkommen des Wortes durch ein “b” ersetzt werden.
Da Klogg lediglich ein Viewer ist und keine Bearbeitungsfunktionen besitzt, wird er in diesem Test nicht berücksichtigt.
Editoren | RAM in MB | Zeit in Sekunden | Kombinierter Rang | Transformation(RAM) | Transformation(time) | Add Transformation |
---|---|---|---|---|---|---|
CudaText | 746 | 11 | 5 | 13 | 6 | 19 |
EmEditor | 144 | 0,094 | 2 | 3 | 1 | 4 |
Geany | 1400 | 20 | 10 | 25 | 10 | 35 |
Helix | - | - | 12 | 75 | ||
jEdit | 1000 | 7 | 7 | 18 | 4 | 22 |
Kate | 54,7 | 1 | 1 | 1 | 1 | 2 |
Notepad Next | 776 | 3 | 4 | 14 | 2 | 16 |
Notepad++ | 345 | 2 | 3 | 6 | 2 | 8 |
Proton | 764,8 | 13 | 6 | 14 | 7 | 21 |
PSPad | 744 | 20 | 8 | 13 | 10 | 23 |
Sublime | 890 | 17 | 9 | 16 | 9 | 25 |
TextAdebt | 698 | 54 | 12 | 12 | 25 | 37 |
Windows Editor | 1400 | 21 | 10 | 25 | 10 | 35 |
IDEs | ||||||
Eclipse | - | - | 3 | 75 | ||
Intellij IDEA | - | - | 3 | 75 | ||
Lapce | - | - | 3 | 75 | ||
NetBeans | 4100 | 95,000 | 2 | 25 | 25 | 50 |
VisualStudio Code | 2000 | 15,000 | 1 | 1 | 1 | 2 |
Viewer | ||||||
Klogg | - | - |
Ergebnisse
Editoren | Rang | Start | JSON Highlight | Mittelgroße TXT | Große TXT | Search and Replace | Summe |
---|---|---|---|---|---|---|---|
CudaText | 4 | 6 | 6 | 24 | 27 | 19 | 82 |
EmEditor | 1 | 6 | 7 | 2 | 4 | 4 | 23 |
Geany | 11 | 19 | 31 | 21 | 75 | 35 | 181 |
Helix | 7 | 2 | 2 | 9 | 17 | 75 | 105 |
jEdit | 10 | 32 | 9 | 25 | 75 | 22 | 163 |
Kate | 5 | 15 | 12 | 30 | 34 | 2 | 93 |
Notepad Next | 3 | 5 | 4 | 18 | 29 | 16 | 72 |
Notepad++ | 2 | 6 | 4 | 9 | 12 | 8 | 39 |
Proton | 8 | 3 | 6 | 25 | 75 | 21 | 130 |
PSPad | 9 | 6 | 7 | 42 | 75 | 23 | 153 |
Sublime | 6 | 6 | 8 | 23 | 42 | 25 | 104 |
TextAdept | 12 | 28 | 29 | 32 | 75 | 37 | 201 |
Windows Editor | 13 | 6 | 75 | 43 | 75 | 35 | 234 |
IDEs | |||||||
Eclipse | 4 | 20 | 50 | 14 | 75 | 75 | 234 |
Intellij IDEA | 5 | 50 | 75 | 51 | 27 | 75 | 278 |
Lapce | 2 | 3 | 2 | 7 | 50 | 75 | 137 |
NetBeans | 3 | 11 | 45 | 27 | 75 | 50 | 208 |
VisualStudio Code | 1 | 6 | 11 | 6 | 75 | 2 | 100 |
Viewer | |||||||
Klogg | 1 |
Fazit
Ranking System
Wir haben die Werte für CPU-Zeit und RAM auf einen Bereich von 1 bis 25 reduziert. Beide Werte werden nun addiert. Wenn ein Programm den Test nur teilweise oder gar nicht erfüllen kann, werden weitere 25 Punkte zur Summe hinzugefügt.
Die resultierende Zahl aus den Testergebnissen wird in die Gesamt-Tabelle aufgenommen. Jede Zeile der Tabelle wird erneut addiert, um am Ende einen Rang zu erhalten. Je höher das Gesamtergebnis am Ende ist, desto niedriger ist die Leistung des Programms.
Wir haben uns die Frage gestellt, wie die Rangfolge möglichst fair gestaltet werden kann. Eine vorherige Idee war, einen Rang für den RAM und die CPU-Zeit zu berechnen und diese Ränge beim Gesamtergebnis zu addieren, um erneut einen Rang zu ermitteln. Diese Vorgehensweise führte jedoch zu einer doppelten Verwischung und war daher ungenau.
Es ist zu beachten, dass dies lediglich unsere Methode ist und das Ergebnis je nach Vorgehensweise variieren kann. Falls eine Nachvollziehung des Ergebnisses gewünscht ist, haben wir ein Repository auf GitHub mit den Testdateien eingerichtet.
Empfehlungen
Um eine Empfehlung auszusprechen reicht es nicht ganz aus nur die Leistung in Betracht zu ziehen. Fast alle hier getesteten Programme sind für unterschiedliche Anwendungsfälle geeignet.
Wenn zum Beispiel große Logdateien analysiert werden müssen, empfehlen wir die Verwendung des Klogg Viewers, da er aufgrund seiner schnellen Verarbeitungsgeschwindigkeit und des geringen Arbeitsspeicherverbrauchs besonders geeignet ist. Soll zusätzlich eine große Datei bearbeitet werden, empfehlen wir den EmEditor. Beachten Sie jedoch, dass dieser nicht vollständig kostenlos ist.
Für schnelles Arbeiten, moderaten Arbeitsspeicherverbrauch und umfangreiche Funktionalität empfehlen wir Notepad++ und Notepad Next. Unter den kostenfreien Editoren ist Notepad++ nach wie vor die beste Wahl, wenn es darum geht, Dateien zu bearbeiten. Wenn Sie einfache Skripte oder kleine Programme schreiben möchten, die keine umfangreiche integrierte Entwicklungsumgebung erfordern, ist Notepad++ vollkommen ausreichend. Unter Linux ist es jedoch möglicherweise besser, Notepad Next zu verwenden, wenn Sie nicht auf Notepad++ verzichten möchten, da Notepad++ nur unter Windows funktioniert.
Die Verwendung von integrierten Entwicklungsumgebungen (IDEs) hat ihre Vorteile, obwohl sie im Allgemeinen mehr Arbeitsspeicher verbrauchen und langsamer arbeiten als reine Editoren. IDEs sind in erster Linie für die Programmierung von Projekten aller Art gedacht und bieten eine gute Übersicht sowie Unterstützung für Paketmanager.
Der Plugin-Support bei Visual Studio Code ist auch bei fast allen Anwendungsmöglichkeiten sehr hilfreich. Für die meisten Projekte ist Visual Studio Code aufgrund seiner Leistung sehr zu empfehlen. Das Open-Source-Projekt Lapce ist sehr stark an Visual Studio Code angelehnt und hat Potenzial, erreicht aber noch nicht die gleichen Möglichkeiten und Funktionen. Rein von der Leistung her ist Lapce jedoch zu empfehlen.
Bei Javaprojekten empfehlen wir die Verwendung von IntelliJ IDEA, da es darauf ausgelegt ist und viele Funktionen bietet. Leider ist die Leistung enttäuschend. NetBeans und Eclipse werden zwar noch weiterentwickelt, aber sie kommen langsam in die Jahre. Beide IDEs basieren auf Java und haben dementsprechend auch einen hohen Arbeitsspeicherverbrauch.