Implementierung eines schnellen Log-Betrachters (Java)

Gast #2227921
Ich benötige eine graphische Benutzeroberflächen-Klasse, welche größere 
Logdateien (ca. 20 MByte Text) farbig anzeigt.
JEditorPane ist damit schnell überfordert.

Ich würde die Logdatei zeilenweise zusammen mit einem Attribut 
(Enumerationstyp) in einem generischen Vector speichern.

Von hier gibt es zwei Wege - entweder
 1.) anhand der Position der Scrollbalken den aktiven Ausschnitt 
erkennen und zeichnen oder
 2.) alles auf ein riesiges Image zeichnen und von diesem dann den 
Ausschnitt "blitten".

Was wäre der günstigste Weg? Oder kennt jemand schon eine gute freie 
Klasse für diesen Zweck?
Persönliche Seite #2228052
Riesenharf schrieb:
> JEditorPane ist damit schnell überfordert

Was benutzt du den? HTML/RTF? Incrementelle Updates oder alles in einem 
Rutsch... eigenes Dokumentenmodell?

Hier gibt es einige Tips zur Optimierung:
http://java-sl.com/JEditorPanePerformance.html

Bei Logeinträgen würde es sich ggf. auch anbieten eine Jlist mit je 
einem EIntrag/Logentry + Custom Renderer zu nutzen.
Gast #2228533
Riesenharf schrieb:
> Ich benötige eine graphische Benutzeroberflächen-Klasse, welche größere
> Logdateien (ca. 20 MByte Text) farbig anzeigt.
> JEditorPane ist damit schnell überfordert.
>
> Ich würde die Logdatei zeilenweise zusammen mit einem Attribut
> (Enumerationstyp) in einem generischen Vector speichern.

Hmm, hmm, verbraucht ganz schön viel Speicher für Kram den Du garnicht 
anzeigst. Besser nur den gerade angezeigten Bereich und ein bisschen 
drumherum speichern.

> Von hier gibt es zwei Wege - entweder
>  1.) anhand der Position der Scrollbalken den aktiven Ausschnitt
> erkennen und zeichnen oder

Ja.

>  2.) alles auf ein riesiges Image zeichnen und von diesem dann den
> Ausschnitt "blitten".

Nein, um Gottes Willen!

Du hast ja selber schon "riesiges Image" gesagt, hast Du mal 
ausgerechnet wie gross das wirklich werden kann? Ich denke das dürfte 
jenseits von Gut und Böse(tm) sein.

> Was wäre der günstigste Weg? Oder kennt jemand schon eine gute freie
> Klasse für diesen Zweck?

Keine Ahnung, ich nehme da so Sachen wie Baretail und gut ist.
Gast #2228705
Ich benutze text/rtf. Die Empfehlungen auf der angegebenen Seite
http://java-sl.com/JEditorPanePerformance.html
habe ich schon durchgearbeitet.
Speziell geholfen hat
http://javatechniques.com/blog/faster-jtextpane-text-insertion-part-i/
und
http://javatechniques.com/blog/faster-jtextpane-text-insertion-part-ii/

Allein die Verwendung eines separaten Document-Objekts reduzierte die 
benötigte Zeit um eine Größenordnung.

Ein separates Programm kommt leider nicht in Frage, da mein Programm die 
Logdateien von Geräten per scp herunterlädt und nebenbei auch 
Temperatur- und Spannungswerte graphisch darstellt.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.