CF-Strings mit Java manipulieren

Mischa Sameli, Geschäftsführer & Leiter Entwicklung

Nicht neu, und im cms3 eigentlich schon lange intergiert, aber bislang nicht genutzt, ist die StringBuffer-Komponente. Mit dieser Komponente ist es möglich, String-Manipulationen mit Java zu erledingen, was offensichtlich wesentlich schneller und Ressourcen schonender ist als mit ColdFusion. Gerade bei den zahlreichen String-Verknüpfungen scheint die Methode deutliche Vorteile zu bringen.

Denn, so wie ich das verstanden habe, geht es um den folgenden Unterschied: In CF wird bei einer Verknüfung von Strings jedesmal ein neuer String angelegt, der natürlich auch Speuicher belegt. Beispiel:

1<!--- Schritt 1 ---><cfset strtest="hier ein Test"> <!--- Schritt 2 ---><cfset mein="" neuer="" strtest="strTest" text=""> </cfset>
Bei Schritt eins wird die Variable strTest eröffnet und bei Schritt 2 eine zweite strTest. Jetzt kann man sich leicht vorstellen, dass sich da mit der Zeit eine rechte Ansammlung von Variablen im Speicher befindet, die nur darauf wartet, vom GarbageCollector weggeputzt zu werden. Nun zur StringBuffer-Methode. Hier wir immer die gleiche Variable überschrieben. In der Anwendung sieht das dann etwa so aus:
1<!--- initialisieren ---><cfset stringbuffer="" variables.strtest="createObject('component',"> <!--- inhalt füllen ---><cfset ein="" hier="" test=""> <cfset mein="" neuer="" text=""> </cfset>
Hier ein Test, den ich durchgeführt habe mit je 1000 Appends:
1normal: 9937, Zeichen: 808004 mit java: 141, Zeichen: 808004
Die Komponente bietet noch eine ganze Reihe anderer Funktionen aus der Java-Welt.