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.


5 Kommentare
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.
es dauert noch jahre, bis ich das verstehe;) 