Programmvergleiche

  • Mittwoch, Apr. 12, 2023
blog-image

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.