EmEditor v22.5.0 veröffentlicht (einschließlich technischer Überprüfung)!
Heute veröffentlichen wir EmEditor v22.5.0.
Ich habe kürzlich einen PC mit einem Intel Core i7-13700 der 13. Generation gekauft. Seit den Core-Prozessoren der 12. Generation hat Intel eine Hybridarchitektur eingeführt, die P-Cores für Leistung und E-Cores für Effizienz kombiniert. Diese neue Architektur ist interessant, weil ein P-Core schneller läuft als ein E-Core. Alle früheren Versionen von EmEditor gingen davon aus, dass alle Threads mit derselben Geschwindigkeit laufen. Wenn ein P-Core-Thread schneller läuft als ein E-Core-Thread, beenden P-Core-Threads ihre Aufgabe früher als E-Core-Threads und müssen warten, bis die E-Core-Threads ihre Aufgabe beendet haben. Zur Klarstellung: Die Thread-Geschwindigkeit kann auch ohne E-Cores und P-Cores schwanken; wenn ein Thread beispielsweise von einer Hintergrund-App oder einem Systemprozess unterbrochen wird, wird er langsamer als andere Threads. Dennoch kann das Vorhandensein von P-Cores und E-Cores die Situation verschärfen.
Um diese Situation zu überwinden, habe ich den Code so optimiert, dass v22.5 die Thread-Lastverteilung dynamisch verwaltet. Die folgenden Screenshots zeigen die CPU-Auslastung vor und nach der Optimierung beim Suchen nach einem regulären Ausdruck in einer sehr großen Datei. Nach der Optimierung sinkt die Gesamt-CPU-Auslastung am Ende der Aufgabe plötzlich.
Eine frühere Version (v22.4.2) geht davon aus, dass jeder Thread mit derselben Geschwindigkeit läuft. Infolgedessen beenden einige Threads ihre Arbeit früher als andere, und die Gesamt-CPU-Auslastung sinkt gegen Ende einer Suchaufgabe allmählich.
Die neue Version (v22.5) verwaltet die Thread-Lastverteilung dynamisch, sodass jeder Thread bis zum Ende der Aufgabe effizient arbeitet. Die Gesamt-CPU-Auslastung sinkt am Ende der Aufgabe plötzlich. Dadurch wird die Zeit zum Abschließen der Aufgabe kürzer.
Während der Entwicklung von v22.5 haben wir die meiste Zeit damit verbracht, unseren Code zu optimieren, um die Geschwindigkeit vieler Befehle mit verschiedenen Techniken einschließlich Multithreading zu verbessern. Beispielsweise wurde die Geschwindigkeit des Befehls Kopieren durch Multithreading um das 1.49-Fache verbessert. Beim Refactoring und Optimieren hatte ich Gelegenheit, den Code zu überprüfen. Die ältere Version aktivierte versehentlich nicht den SHA-Befehlssatz, wenn die CPU den AVX-512-Befehlssatz nicht unterstützte. v22.5 hat diesen Fehler behoben und die Geschwindigkeit mehrerer Befehle, darunter Doppelte Zeilen löschen, auf vielen CPUs verbessert, die AVX-512 nicht unterstützen. Ich werde den Code auch in kommenden Versionen weiter auf Geschwindigkeit überprüfen und optimieren.
Als ich meinen neuen PC zum ersten Mal verwendete, um unseren Code mit Visual C++ zu kompilieren, war ich enttäuscht, dass der Build sehr langsam war. Wir stellten fest, dass die Speicherauslastung beim Kompilieren des Codes 100 % erreichte, weil nur 16 GB physischer Speicher (RAM) verfügbar waren. Die CPU hat 24 logische Kerne, und Visual C++ verwendete 24 Threads zum Kompilieren des Codes. Die Anpassung der Thread-Anzahl von 24 auf 7 in den Visual C++-Optionen machte den Compiler schneller. Ebenso war EmEditor mit 24 Threads langsamer als mit 3 Threads. Die Erhöhung des physischen Speichers von 16 GB auf 80 GB machte beide Anwendungen mit 24 Threads schneller. Wenn Sie daher eine moderne CPU mit einer großen Anzahl logischer Kerne haben, würde ich Ihnen dringend empfehlen, den physischen Speicher zu erhöhen. Wenn Ihre CPU beispielsweise 24 logische Kerne hat, würde ich mindestens 32 GB physischen Speicher in Ihrem PC empfehlen. Wenn Sie nicht genügend Speicher haben, müssen Sie möglicherweise die Anzahl der Threads anpassen, die auf der Seite Erweitert des Dialogfelds Anpassen in EmEditor festgelegt werden kann. In v22.5 habe ich die Standardanzahl der Threads auf die nächstgelegene GB-Menge des physischen Speichers angepasst, wenn die Anzahl der logischen Kerne diesen GB-Wert überschreitet.
Ein Kunde hat eine Verbesserung der Dateiänderungserkennung gewünscht. Die ältere Version prüfte standardmäßig alle 5 Sekunden die aktuelle Dateigröße und den Zeitstempel, und wenn sie feststellte, dass die Datei geändert worden war, erschien ein Meldungsfeld „Die Datei wurde von einem anderen Programm geändert. Mit Änderungen neu laden?“. v22.5 verwendet eine Windows-API, um Dateiänderungen effizienter zu erkennen.
Ein weiterer Kunde hat sich die Möglichkeit gewünscht, auf den linken Rand einer Zeilennummer zu klicken, um das Lesezeichen umzuschalten. In älteren Versionen mussten Sie den Befehl Lesezeichen umschalten auswählen oder STRG + F2 drücken, um das Lesezeichen umzuschalten. Ich verstehe, dass das Klicken auf die Zeilennummer einfacher und bei Texteditoren einigermaßen üblich ist, daher habe ich diese Möglichkeit hinzugefügt, wenn Zeilennummern sichtbar sind.
Makoto Emura hat die Möglichkeit hinzugefügt, das Language Server Protocol für den Befehl Symbole suchen und den JSON-Sprachserver zu verwenden. Er hat außerdem das CommitList-Plug-in verbessert, indem er Anzeigen für voraus- bzw. zurückliegende Commits für die Schaltflächen Pull und Push hinzugefügt hat.
Wir werden die Unterstützung für Windows 7, 8.1 und Server 2008 R2 in naher Zukunft einstellen. Microsoft hat die Unterstützung für diese Windows-Versionen bereits eingestellt. Die Verwendung dieser alten Windows-Versionen wird aus Sicherheitsgründen dringend abgeraten. Wir werden außerdem die Entwicklung der 32-Bit-Version von EmEditor einstellen. Wir möchten unsere Entwicklungs- und Testressourcen auf die 64-Bit-Version von EmEditor konzentrieren.
Da wir möchten, dass viele Menschen EmEditor verwenden, haben wir unseren EmEditor-Preis so niedrig wie möglich gehalten. Der Erstjahrespreis eines Jahresabonnements, US$40 (früher US$39.99), hat sich seit der Einführung der Jahresabonnement-Lizenzierung um nicht mehr als 1 Cent geändert. Wir dulden jedoch die illegale Nutzung von EmEditor Professional nicht. Ich habe einige Websites gesehen, die „Crack“-Schlüssel für EmEditor Professional verkaufen oder verschenken. Dies sind illegale Websites, und Schlüssel, die von diesen Websites bezogen werden, werden von uns nicht unterstützt. Ich erhalte manchmal technische Fragen zu EmEditor Professional, obwohl die Benutzer keine gültigen Lizenzen besitzen. Ich würde meine Zeit lieber damit verbringen, unsere Kunden zu unterstützen, die gültige Lizenzen erworben haben. Um diese illegalen Websites auszumerzen und, was noch wichtiger ist, EmEditor weiterzuentwickeln und unsere Kunden zu unterstützen, werden wir Code hinzufügen, der die Echtheit von Lizenzen anhand unserer Serverdatenbank prüft. Wenn eine Lizenz ungültig ist, verhindert der Code, dass die Professional-Version funktioniert. Diese Prüfung erfolgt möglicherweise nicht sofort beim Start von EmEditor und nicht bei jedem Start von EmEditor. Aufgrund der Art und des Zwecks dieses Codes werden wir keine Details zu seiner Funktionsweise offenlegen. Es werden jedoch keine personenbezogenen Daten übertragen, und diese Prüfung hindert Sie nicht daran, EmEditor ohne Internetverbindung zu verwenden. Es ist wichtig für uns, unsere Software und unsere Kunden zu schützen, die gültige Lizenzen erworben haben. Ich hoffe, Sie verstehen den Hintergrund dieser minimalen Lizenzprüfung und akzeptieren sie. Bitte lesen Sie auch So berechnen Sie die Anzahl der Lizenzen, um zu prüfen, ob Sie genügend notwendige Lizenzen besitzen.
Über unsere Lizenzpreisanpassung und die Einstellung des Verkaufs von Lifetime-Lizenzen werden wir in einem separaten Blogbeitrag informieren.
Ich hoffe, dass Ihnen EmEditor gefällt, unabhängig davon, ob Sie die Version Professional oder Free verwenden. Bitte kontaktieren Sie uns oder schreiben Sie in den Foren, wenn Sie Fragen, Funktionswünsche oder Ideen für die Zukunft haben.
Vielen Dank, dass Sie EmEditor verwenden!
— Yutaka Emura
Einzelheiten und Screenshots finden Sie unter Neue Funktionen in EmEditor v22.5.
Diese Version enthält außerdem alle Fehlerbehebungen während der Entwicklung von v22.5.
Wenn Sie die Desktop-Installer-Version verwenden, können Sie im Menü Hilfe die Option Auf Updates prüfen wählen, um die neueste Version herunterzuladen. Wenn diese Methode fehlschlägt, laden Sie die neueste Version herunter und führen Sie den heruntergeladenen Installer aus. Wenn Sie die portable Desktop-Version verwenden, können Sie die neueste Version auf der Downloadseite herunterladen. Die Store-App-Versionen können nach einigen Tagen über den Microsoft Store (64-Bit oder 32-Bit) aktualisiert werden.