Performance-Trauerspiel Kate und KWrite bei größeren Files (> 15 MB)

Hallo,

es gab mal eine Zeit, da waren 15 MB große Textfiles für Kate absolut kein Problem. Die Performance war immer top. Man konnte nach Belieben in größeren Files suchen, das Ergebnis war meist sofort da.

Irgendwann im letzten oder vorletzten Jahr muss irgendetwas passiert sein, denn seitdem wartet man MINUTEN, bis man mit einem einfach Suchen (Ctrl+F) etwas findet.

Interessanterweise findet Kate mit dem Ersetzenbefehl (Ctrl+R + “Alle suchen”) sofort die Anzahl der Vorkommen eines Begriffs, aber wenn man dorthin springen will, dauert es wieder Minuten.

Ich habe das mal bei KDE gemeldet - 453872 – 15 MB file: simple search (CTRL-F) to find results takes minutes; search/replace (CTRL-R) find all without replacing shows results immediately - und bekam eine interessante Antwort:

**

    Please update to a newer Kate / KDE frameworks version. Search performance was improved a lot in last few releases.**

Die Frage ist, wann ist mit einer neueren Version bei openSUSE LEAP zu rechnen? Hat jemand eine Idee? Oder kann ich auf meinem System eine neuere KDE frameworks-Version aufspielen, ohne dass alles crasht?

Auf meinem System ist unter LEAP 15.3 die Version 5.76.0 installiert. Die ist vom 14.11.2020 ( Schedules/Frameworks - KDE Community Wiki ). Inzwischen sind sie bei 5.93 vom 9.4.2022.

Grüße

Ich habe mal Tumbleweed auf einem Live-Stick getestet, da tritt das Performanceproblem nicht auf.
Ich überlege nun, ob nicht vielleicht auf Tumbleweed setze in Zukunft.
Aber muss ich da auch öfter mit Überraschungen rechnen?

Was wären denn “Überraschungen” für Dich?

Viele Grüße

susejunky

Dass ich nicht arbeiten kann, weil irgendetwas mit der heißen Nadel gestrickt war.

VG

Tip:
Lass die Finger davon wenn du dich nicht wehren kannst…

Da braucht es den etwas größeren Linux Freischwimmer Schein…

Vor gut zwei Jahren habe ich alle meine Systeme auf openSUSE Tumbleweed umgestellt und hatte bis heute noch keinen “Arbeitsausfall” zu beklagen.

Allerdings muss “Arbeit” nicht gleich “Arbeit” sein, auch die verwendete Hardware kann erhebliche Unterschiede aufweisen und die individuelle Arbeitsweise spielt möglicherweise auch eine Rolle …

Viele Grüße

susejunky

Also zumindest für kwrite, das ja auch im Titel genannt ist, kann ich das nicht bestätigen. Ich habe mir mal eine Kopie meiner boot.log (13 MB, ca. 230T Zeilen) vorgenommen. Ctrl+a OK, dauert evtl. 15-20 Sekunden, dann Ctrl+c und Ctrl+v, dauert ähnlich, aber um mal eben die Anzahl der Zeilen auf 460T St. zu verdoppeln, finde ich es nicht schlecht. Ctrl+F lässt sofort alle gefundenen Treffer gelb aufleuchten, springen mit den Pfeilen geht ohne Verzögerung, bei 26 MB Dateigröße.

Betriebssystem: openSUSE Leap 15.3
KDE-Plasma-Version: 5.18.6
KDE-Frameworks-Version: 5.76.0
Qt-Version: 5.12.7
Kernel-Version: 5.3.18-150300.59.68-default
Art des Betriebssystems: 64-bit
Prozessoren: 8 × Intel® Core™ i7-8550U CPU @ 1.80GHz
Speicher: 7,6 GiB Arbeitsspeicher

kwrite: 20.04.2

Kann sein, dass du gerade einen wertvollen Tipp geliefert hast. Wenn ich den gesamten Fileinhalt vorher mit Ctrl+A markiere, komme ich bei Kate und bei KWrite nur noch auf ca. 10 Sekunden beim Suchen mit Ctrl-F. Damit könnte ich leben.

Immer gerne! :wink:

Das Trauerspiel kann ich nicht nachvollziehen. Bei 18MB/162000 Zeilen dauert CTRL+A in Kate keine 15-20 Sekunden, sondern geht in Bruchteilen einer Sekunde.

Betriebssystem: openSUSE Tumbleweed 20220604
KDE-Plasma-Version: 5.24.5
KDE-Frameworks-Version: 5.94.0
Qt-Version: 5.15.2
Kernel-Version: 5.18.1-1-default (64-bit)
Grafik-Plattform: X11
Prozessoren: 8 × AMD Ryzen 5 3400G with Radeon Vega Graphics
Speicher: 29,3 GiB Arbeitsspeicher
Grafikprozessor: AMD Radeon Vega 11 Graphics

Apropos: openSUSE Tumbleweed | The BEST Rolling Release Linux Distro of 2022! (BLEEDING EDGE)](https://www.youtube.com/watch?v=yraNeOaYQBw)

Unter Tumbleweed funktioniert Kate so wie anfangs mal unter LEAP, weil Tumbleweed eine neuere KDE-Framework-Version als LEAP verwendet.

4.11.2022: Mit dem Upgrade auf Leap 15.4 tritt das Problem endlich nicht mehr auf.

Bei Leap kann es tatsächlich länger dauern bis Probleme behoben werden. Das ist mit ein Grund, dass ich alle meine Systeme auf Tumbleweed umgestellt habe.

Für Experten sicher keine Problem…

Hi,

bei mir ist Kate auch sehr langsam und zwar auch bei sehr kleinen Dateien, wenn ich vom Leap 15.4 Live (von USB) was editieren will.
Offensichtlich sind irgendwelche Einstellungen bei Kate standardmäßig so, dass eine swap-Datei sehr oft geschrieben wird (z.T. bei jedem Tastendruck, d.h. bei dir jedes mal 15 MB :)).
Bei mir zeigt der Systemmonitor ständig irgendwelche Schreibvorgänge von Kate an

Angeblich soll es helfen, wenn man unter Einstellungen -> Kate einrichten -> Örrnen/Speichern -> Erweitert dann den “swap file mode” ausschaltet oder einstellt, dass die swap nur selten gespeichert wird:

https://www.linuxquestions.org/questions/linux-software-2/kate-running-really-choppy-keeps-writing-to-disk-for-each-character-4175478062/

ich konnte das noch nicht ausprobieren, aber hoffentlich bringt es was bei dir.

Hi,

konnte das jetzt testen, leider hat das Ausschalten der “swap file mode” bei mir (Leap 15,4 live USB) nicht geholfen.
Kate schreibt trotzdem von Zeit zu Zeit mehrere MB auf dem USB-Stick laut Systemmonitor und friert in dem Moment für mehrere Sekunden ein.
Das Blöde ist, die Datei, die ich bearbeite, ist nur ca. 1kB.

Beim “nomalen” System (Leap 15.4 auf nvme-Festplatte) gibt es dieses Einfrieren nicht, aber laut Systemmonitor schreibt Kate relativ viel auf der Festplatte, nur die ist viel schneller als USB-Sticks …

Wie gesagt, bei mir läuft es jetzt.

“Kate schreibt mehrere MB” ist keine sehr aufschlussreiche Information. Was schreibt Kate wohin, das ist hier die Frage.

Kate ist äußerst schnell, warnt aber bei großen Files vor längeren Öffnungszeiten. Auf meiner Hardware ist das unnötig. Ein File mit 380 000 Zeilen ( 47MB) wird sofort geöffnet. Geschrieben hat Kate hier nichts.

**erlangen:~ #** inxi -SMCDm 
**System:**
  **Host:** erlangen **Kernel:** 6.0.6-1-default **arch:** x86_64 **bits:** 64 
    **Console:** pty pts/1 **Distro:** openSUSE Tumbleweed 20221105 
**Machine:**
  **Type:** Desktop **Mobo:** ASUSTeK **model:** PRIME B450-PLUS **v:** Rev X.0x 
    **serial:** 201278343101133 **UEFI:** American Megatrends **v:** 2409 **date:** 12/02/2020 
**Memory:**
  **RAM:****total:** 29.27 GiB **used:** 5.6 GiB (19.1%) 
  **Array-1:****capacity:** 128 GiB **slots:** 4 **EC:** None 
  **Device-1:** DIMM_A1 **type:** no module installed 
  **Device-2:** DIMM_A2 **type:** DDR4 **size:** 16 GiB **speed:** 2133 MT/s 
  **Device-3:** DIMM_B1 **type:** no module installed 
  **Device-4:** DIMM_B2 **type:** DDR4 **size:** 16 GiB **speed:** 2133 MT/s 
**CPU:**
  **Info:** quad core **model:** AMD Ryzen 5 3400G with Radeon Vega Graphics **bits:** 64 
    **type:** MT MCP **cache:****L2:** 2 MiB 
  **Speed (MHz):****avg:** 1975 **min/max:** 1400/3700 **cores:****1:** 1400 **2:** 3700 **3:** 1400 
    **4:** 1400 **5:** 3700 **6:** 1400 **7:** 1400 **8:** 1400 
**Drives:**
  **Local Storage:****total:** 1.15 TiB **used:** 439.07 GiB (37.3%) 
  **ID-1:** /dev/nvme0n1 **vendor:** Samsung **model:** SSD 950 PRO 512GB 
    **size:** 476.94 GiB 
  **ID-2:** /dev/sda **vendor:** Samsung **model:** SSD 850 EVO 250GB **size:** 232.89 GiB 
  **ID-3:** /dev/sdb **vendor:** Samsung **model:** SSD 850 EVO 500GB **size:** 465.76 GiB 
**erlangen:~ #**

Habe gerade ein großes File entdeckt:

karl@erlangen:~> ll -h .local/share/akonadi/db_data/mysql.err.old 
-rw-r-xr-x 1 karl users 2,4G  7. Nov 17:09 .local/share/akonadi/db_data/mysql.err.old
karl@erlangen:~> 

Kate öffnet das File mit 12.315.135 (12 Millionen) Zeilen in wenigen Sekunden.

Hallo,

hier als beispiel vom live usb (sdb):

 # inxi -SMCDm
System:    Host: localhost.localdomain Kernel: 5.14.21-150400.24.18-default x86_64 bits: 64 Desktop: KDE Plasma 5.24.4
           Distro: openSUSE Leap 15.4
Machine:   Type: Desktop System: ASUS product: N/A v: N/A serial: N/A
           Mobo: ASUSTeK model: PRIME H510M-A WIFI v: Rev 1.xx serial:  UEFI: American Megatrends v: 1601
           date: 05/07/2022
Memory:    RAM: total: 14.46 GiB used: 2.08 GiB (14.4%)
           Array-1: capacity: 32 GiB slots: 2 EC: None
           Device-1: Controller0-ChannelA-DIMM0 size: 8 GiB speed: spec: 2133 MT/s actual: 2933 MT/s
           Device-2: Controller0-ChannelB-DIMM0 size: 8 GiB speed: spec: 2133 MT/s actual: 2933 MT/s
CPU:       Info: 6-Core model: 11th Gen Intel Core i5-11400 bits: 64 type: MT MCP cache: L2: 12 MiB
           Speed: 864 MHz min/max: 800/4400 MHz Core speeds (MHz): 1: 864 2: 937 3: 877 4: 875 5: 801 6: 801 7: 835 8: 807
           9: 892 10: 882 11: 823 12: 890
Drives:    Local Storage: total: 1.39 TiB used: 5.65 GiB (0.4%)
           ID-1: /dev/nvme0n1 vendor: Kingston model: SNVS500G size: 465.76 GiB
           ID-2: /dev/sda vendor: Samsung model: HD103SI size: 931.51 GiB
           ID-3: /dev/sdb type: USB vendor: Kingston model: DataTraveler 3.0 size: 28.9 GiB

Im Internet als Beispiel mit iotop gefunden, zeigt alle 2 s an, welche prozesse lesen/schreiben:

iotop -o -b -d 2 >> testrw2.txt
[FONT=monospace]grep kate testrw2.txt
[FONT=monospace] 3882 be/4 linux       0.00 B/s  589.38 K/s  ?unavailable?  **kate** -b /home/linux/Desktop/commands.txt 
 3882 be/4 linux       0.00 B/s    3.07 M/s  ?unavailable?  **kate** -b /home/linux/Desktop/commands.txt 
 3882 be/4 linux       0.00 B/s    3.96 K/s  ?unavailable?  **kate** -b /home/linux/Desktop/commands.txt 
 3882 be/4 linux       0.00 B/s 1498.39 K/s  ?unavailable?  **kate** -b /home/linux/Desktop/commands.txt 
 3882 be/4 linux       0.00 B/s  879.33 K/s  ?unavailable?  **kate** -b /home/linux/Desktop/commands.txt 
 3882 be/4 linux       0.00 B/s   23.76 K/s  ?unavailable?  **kate** -b /home/linux/Desktop/commands.txt 
 3882 be/4 linux       0.00 B/s 1543.68 K/s  ?unavailable?  **kate** -b /home/linux/Desktop/commands.txt 
 3882 be/4 linux       0.00 B/s  308.93 K/s  ?unavailable?  **kate** -b /home/linux/Desktop/commands.txt 
 3882 be/4 linux       0.00 B/s   39.57 K/s  ?unavailable?  **kate** -b /home/linux/Desktop/commands.txt 
 3882 be/4 linux       0.00 B/s  239.43 K/s  ?unavailable?  **kate** -b /home/linux/Desktop/commands.txt 
 3882 be/4 linux       0.00 B/s 1313.89 K/s  ?unavailable?  **kate** -b /home/linux/Desktop/commands.txt 
 3882 be/4 linux       0.00 B/s  202.99 K/s  ?unavailable?  **kate** -b /home/linux/Desktop/commands.txt 
 3882 be/4 linux       0.00 B/s    2.04 M/s  ?unavailable?  **kate** -b /home/linux/Desktop/commands.txt 
 3882 be/4 linux       0.00 B/s 2026.38 B/s  ?unavailable?  **kate** -b /home/linux/Desktop/commands.txt 
 3882 be/4 linux       0.00 B/s 1512.09 K/s  ?unavailable?  **kate** -b /home/linux/Desktop/commands.txt 
 3882 be/4 linux       0.00 B/s  502.73 K/s  ?unavailable?  **kate** -b /home/linux/Desktop/commands.txt 
 3882 be/4 linux       0.00 B/s 1588.93 K/s  ?unavailable?  **kate** -b /home/linux/Desktop/commands.txt 
 3882 be/4 linux       0.00 B/s 1829.71 K/s  ?unavailable?  **kate** -b /home/linux/Desktop/commands.txt 
 3882 be/4 linux       0.00 B/s  481.17 K/s  ?unavailable?  **kate** -b /home/linux/Desktop/commands.txt 
 3882 be/4 linux       0.00 B/s    0.00 B/s  ?unavailable?  **kate** -b /home/linux/Desktop/commands.txt

  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND[/FONT]

[/FONT]

Ich habe nur die Datei commands.txt (ca. 1kB) offen und etwas text geschrieben, nichts gespeichert.
Gemountet ist nur /dev/sdb, also kate kann auch nur hierher schreiben.
Ich weiss nicht, wie man herausfinden kann, wohin genau kate schreibt, evt. gibt es irendwelche temp. dateien…
Der System Monitor zeigt mir auch, dass kate von zeit zu zeit schreibt teilweise mit 0,5-1 MB/s.