Warum öffnet Wordpad große Dateien so viel schneller als Notepad?

1015
yoyo_fun

Ich dachte Notepad, der einfachste Textleser ist auch der schnellste, aber als ich versuchte, sehr große Textdateien zu öffnen, entdeckte ich, dass Wordpad sie viel schneller öffnet.

Was könnte der Grund dafür sein?

0
Notizblock gehört nicht zu den schnellsten. Es ist eines der am schlechtesten geschriebenen. TOOGAM vor 7 Jahren 2
Öffnen Sie große Dateien wie Hunderte von MBs oder ein paar GB mit Notepad und sehen Sie. Andere Editoren haben keine Probleme damit, sie im Handumdrehen zu öffnen, während der Notizblock noch Probleme hat, sie zu öffnen phuclv vor 7 Jahren 0

2 Antworten auf die Frage

5
phuclv

Einfach! = Schnell

Ein einfacher Editor wie Notepad ist möglicherweise so einfach, dass er komplexe Situationen nicht lösen kann. Weil es nur für einfache Anwendungsfälle verwendet wird.

Ein intelligenter Editor bestimmt viele Faktoren, um zu entscheiden, welche Strategie am besten zu verwenden ist. Anstatt die Datei zeilenweise oder byteweise wie ein dummer Editor zu lesen, wird sie zum späteren Lesen in einen großen Puffer geladen . Wie groß sollte der Puffer sein? Das hängt von jedem Einzelfall ab und der Editor sollte dies berücksichtigen. Anstatt eine ganze Datei mit mehreren GB in den Speicher zu laden und zu blockieren, weil dies einfach nicht passt, prüft ein intelligenter Editor nur die Dateigröße und lädt nur den gerade angezeigten Teil und lädt ihn später bei Bedarf.

All dies erfordert ein sorgfältigeres Design mit viel Logik, die in Notepad nicht vorhanden ist, da sich der Quellcode seit einem Jahrzehnt nicht wesentlich geändert hat.

Siehe Warum kann Vim große Dateien schneller als andere Texteditoren öffnen?

Aktualisieren

Mit Windows 10 Build 17713 wurden viele Änderungen in Notepad eingeführt, von denen eine das Verhalten von Notepad bei großen Dateien verbessert

  • Wir haben die Leistung beim Öffnen großer Dateien in Notepad verbessert.
  • Notepad unterstützt jetzt Strg + Rücktaste, um das vorherige Wort zu löschen.
  • Die Pfeiltasten heben den Text jetzt korrekt auf und bewegen dann den Cursor.
  • Beim Speichern einer Datei in Notepad werden die Zeilen- und Spaltennummer nicht mehr auf 1 zurückgesetzt.
  • Im Editor werden jetzt Zeilen korrekt angezeigt, die nicht vollständig auf dem Bildschirm angezeigt werden.

Es gibt jetzt auch Unterstützung für Unix-Zeilenenden, Textzoomfunktion und Statusleiste im Zeilenumbruchmodus

Ankündigung des Windows 10 Insider Preview Build 17713

Ich muss dich korrigieren. ** Die meisten ** Windows-Codes haben sich seit einem Jahrzehnt nicht geändert. (Näher an 17 Jahren eigentlich viel). ** Notepad ** hat sich seit Windows 1.0 (der ersten grafischen Benutzeroberfläche, obwohl es in MS-DOS verfügbar war), die auf 31 Jahre alt ist, nicht wesentlich geändert. user657451 vor 7 Jahren 0
@ user657451 Nein, seit Vista gab es viele Umschreibungen. Deshalb hat MS 5 Jahre gebraucht, um Vista zu veröffentlichen. Notepad hat eine bedeutende Änderung in (IIRC) XP für Unicode und die Unterstützung großer Dateien erhalten. Vorher können keine Dateien mit mehr als 64 KB geöffnet werden phuclv vor 7 Jahren 1
Das ist lustig, denn in 10 gibt es immer noch die meisten NT4.0-Snap-Ins und .mscs. unverändert. Und diese Registrierungssache. Ich bin mir ziemlich sicher, dass sie wirklich nur versucht haben, herauszufinden, wie man Macs DE für die Arbeit mit Windows-APIs portiert. Und als das fehlschlug, gingen sie zurück und enthäuteten CE3.0 und nannten es 8. user657451 vor 7 Jahren 0
@ user657451 Ich bin mir sicher, dass in jeder Windows-Version aufgrund der Kompatibilität eine Menge von veraltetem Code vorhanden ist. In Vista gibt es jedoch wichtige Änderungen wie DWM, UAC ..., die noch nie zuvor da waren. Die Grundstruktur ist offensichtlich immer noch dieselbe, denn wie kann man die Registrierung löschen, ohne die Kompatibilität zu beeinträchtigen. Inwiefern ist CE 8 ähnlich? Es hat nicht einmal einen NT-Kernel phuclv vor 7 Jahren 1
Nein, es ist nicht einmal älterer Code für Kompatibilität, darum geht es in dem abscheulichen winsxs-Ordner. Die Anzahl der W10-Threads (98, NT, Vista, 7, 8) würde auf "Kompatibilität" schließen. https://s3.amazonaws.com/neowin/forum/uploads/monthly_04_2012/post-125978-0-63250700-1334212270.jpg user657451 vor 7 Jahren 0
Ich akzeptiere das ja, Microsoft hat ihren Code erweitert. Abgesehen von einem sprechenden gelben Hund und einer Büroklammer fällt mir nichts ein, was sie vor allen anderen Betriebssystemen implementiert haben. user657451 vor 7 Jahren 0
2
LMiller7

Notepad ist wenig mehr als eine Shell um das Windows Edit-Steuerelement. Es wurde für die Bearbeitung kleiner Textmengen entwickelt und wurde für diese optimiert. Frühere Versionen mussten in Systemen mit sehr begrenzten Ressourcen laufen, wo diese Optimierungen wichtig waren. Windows 95 hatte eine offizielle Anforderung von nur 4 MB RAM und aus technischen Gründen war das Edit-Steuerelement auf 64 KB Text beschränkt. Die NT-Plattform war nicht so begrenzt, musste aber auch mit begrenzten Ressourcen arbeiten.

Das Erstellen eines Editors für kleine Dateien ist relativ einfach. Das Entwerfen einer Datei, die effizient mit großen Dateien arbeitet, ist alles andere als einfach und erfordert viel komplexen Code. Kleine und einfache Editoren funktionieren mit großen Dateien nicht gut. Alle diese Editoren, nicht nur der Notizblock, werden an mehreren Gigabyte-Dateien (auch an einem leistungsstarken Computer) ersticken. Einige fortgeschrittene Editoren können dies problemlos handhaben.

Notepad funktioniert immer noch gut für den vorgesehenen Zweck und hat sich im Laufe der Jahre nur wenig geändert. Das Windows Edit-Steuerelement wird in den meisten Windows-Anwendungen in gewisser Form verwendet. Inkompatibilitäten sind daher groß, wenn wesentliche Änderungen vorgenommen wurden. Warum die Chance nutzen, unnötige Änderungen vorzunehmen? Die Erfahrung hat gezeigt, dass die unbedeutendsten Änderungen Inkompatibilitäten in Anwendungen verursachen können

Wenn Sie größere Dateien bearbeiten müssen, stehen viele andere Editoren zur Verfügung. Notepad wurde nie dafür entworfen.