Uff… Problem gelöst. Nein, ich habe keinen schnelleren BB-Parser gefunden. Das heißt, eigentlich schon, sogar mehrere, aber keiner war wirklich kompatibel mit dem BBCode, der bisher benutzt wurde.
Aber ist ja auch egal. Rückblickend betrachtet war die Sache mit dem BBCode sowieso blöd. Nur als ich einmal angefangen hatte, war es natürlich schwieriger, wieder umzustellen. Glücklicherweise nicht ganz so schwierig. Ich habe ein kleines Script ins repository gelegt, mit dem alle bisherigen Einträge in der Datenbank geparst (ist das ein Wort) und wieder in die DB zurückgeschrieben werden. Falls jemand (was ich bezweifle) diese Blogsoftware hier benutzt, würde ich also nach dem Update ein rails runner script/replace_bbcode
im Anwendungsverzeichnis empfehlen. Gegebenenfalls mit RAILS_ENV=production
davor.
Was gibt es jetzt statt BBCode? eine Whitelist mit zulässigen HTML-Tags (und zulässigen Attributen). Vorteil ist, dass da natürlich das ganze parsen wegfällt, und es ist auch leichter erweiterbar wenn man etwas neues erlauben oder verbieten möchte. Die von vorher übernommenen Einträge, deren HTML-Code mittels Parser erstellt wurde sehen wahrscheinlich auf Codeebene ziemlich hässlich aus. Ansonsten sollte sich nichts geändert haben. Hoffe ich. Falls irgendwo was falsch aussieht, bitte bei mir melden!
Edit: Okay, es ist immer noch lahm. Aber bei weitem nicht mehr so lahm wie vorher. Den Rest nehme ich mir später vor. Da ist zum Beispiel noch die rekursive Kommentarabfrage (aber die kann es nicht sein, schließlich gibt es hier kaum Kommentare).