Hi,
wir haben ein paar (Unit)Tests gemacht, wobei mehrere Threads JLanguageTool nutzen, jeweils mit einer eigenen Instanz aber mit “shared” Language Klassen (wie in den API Docs beschrieben). Dabei ist beim Profiling aufgefallen, dass der jWordSplitter sehr oft blockt, wenn man DE als Sprache nutzt.
Jetzt habe ich auf der Projektwebsite folgendes Zitat gefunden: “Je nach Anwendungsfall könnten compound-splitter oder der DictionaryCompoundWordTokenFilter von Lucene eine Alternative zu jWordSplitter sein.”
Um weiteren Testaufwand und evtl. eigene Implementierung zu vermeiden, habt ihr Erfahrungswerte in Richtung MultiThreading? Oder genrell zu Thema Perfomance und WordSplitting. Ziel ist es weniger Blocks zu haben, da wir das LanguageTool in einem Servlet wrappen wollen, um in einer WebApp zu nutzen, wobei es darum geht mögliche Latenzen zu vermeiden.
Deutsch zu checken dauert unabhängig von der Textlänge in unserem Szenario 190ms (in Vergleich dazu andere Sprachen im unteren zweistelligen ms-Bereich). Deaktiviere ich Komposita-Checks, die ja soweit ich verstanden habe exzessiv den jWordSplitter nutzen müssen, scheint auch Deutsch deutlich performanter.
Gruß
Jens