12.03.07

jProfiler für jEdit

Ich mache nicht viel Java-Entwicklung und wenn, dann ist es hauptsächlich für jEdit - ein sehr umfassender Texteditor und Entwicklungsumgebung.

Da mir dort Performanceeinbussen im Zusammenhang mit dem Syntax-Highlighting aufgefallen sind, hatte ich mir jProfiler angeschaut, welches nicht kostenlos ist - aber es gibt die Möglichkeit, es für 10 Tage kostenlos zu testen.

Innerhalb dieses Testzeitraums habe ich nicht wirklich mir dem Programm gearbeitet und als ich dann loslegen wollte, war der Testschlüssel nicht mehr gültig.

Ich habe dann freundlich bei dem Vertrieb nachgefragt, ob sie mir nicht eine Lizenz (die derzeit immerhin etwa 400€ kostet) zum Verbessern eines Open-Source-Programmes (nämlich jEdit) zur Verfügung stellen - und tatsächlich habe ich am nächsten Werktag eine (auf das Profilen von jEdit beschränkte) Lizenz bekommen. Auch wurde mir mitgeteilt, dass sie auch schon andere Open-Source-Projekte unterstützt hätten.

Herrlich!

Nochmals vielen Dank.. :)

Gerade habe ich mit Hilfe von jProfiler den zweiten Flaschenhals in jEdit gefunden. Unten sieht man den "Call Graph" einer Methode vor und nach einem (recht trivialen) Patch.

jProfiler - Call Graph before patch
jProfiler - Call Graph after patch
Von Daniel in development12.03.07 German (DE) E-Mail
Schlagworte:

5 Kommentare

Kommentar von: Bianca [Besucher] E-Mail
BiancaMein Favorit in Sachen Java ist immer noch eclipse!
12.03.07 @ 11:05
Kommentar von: joschka [Mitglied] E-Mail
Der Anschlusszug nach Verstandn hat Verspätung auf unbegrenzte Zeit!
12.03.07 @ 14:40
Kommentar von: claudia [Mitglied] E-Mail
es dauert noch jahre, bis ich das verstehe;)
12.03.07 @ 20:00
Kommentar von: Martin Dix [Besucher] E-Mail
Martin DixVersteh ich auch nicht. Was ist denn der 1. Flaschenhals und was der 2.? Und was macht der Patch. Erklär doch mal! Der Patch liefert -1 zurück, wenn das Zeichen eine Klammer ist?
12.03.07 @ 20:29
Kommentar von: Daniel [Mitglied] E-Mail
Der 1. Flaschenhals war eine "ganz andere" Sache.

Intern hat jEdit "Matcher", die aufgerufen werden, wenn sich zB der Cursor bewegt. Einer dieser Matcher sucht dann eine Klammer, die zum Zeichen am Cursor gehört (also zB "(" wenn der Cursor bei ")" ist) - um dieses "komplementäre" Zeichen zu markieren, was sehr hilfreich ist.

Mein Patch sorgt nun einfach dafür, dass dieser recht aufwändige Matcher nicht alle Token in der Datei markiert, um eine "passende Klammer" zu finden, wenn es gar keine "passende Klammer" geben kann - weil der Cursor sich nicht an einer Klammer befindet (getComplementaryBracket gibt dann \0 zurück).
Der Patch liefert vorzeitig -1 zurück, wenn es keine passende Klammer gibt.
12.03.07 @ 22:21

Einen Kommentar hinterlassen


Ihre E-Mail-Adresse wird nicht auf dieser Seite angezeigt.
(Zeilenumbrüche werden zu <br />)
(Name, E-Mail-Adresse & Webseite)
(Benutzern erlauben, Sie durch ein Kontaktformular zu kontaktieren (Ihre E-Mail-Adresse wird nicht weitergegeben))
Dies ist ein Captcha Bild. Es wird benutzt, um Massenzugriffe von Robotern zu verhindern.
Bitte gib die Zeichen des obigen Bildes ein. (Groß/Kleinschreibung ist unwichtig)
Du kannst einfach Deine OpenID benutzen, um Deinen Namen, E-Mail und URL anzugeben.
Seitenleiste