Lassen Sie mich Ihnen meine Erfahrungen damit zeigen.
Ich hatte eine Abfrage, die 32k von Datensätzen zurückgegeben, für jeden Datensatz rief ich eine Methode zu formatieren, dass Datenbank-Datensatz in eine formatierte Zeichenfolge und als verketten, dass in eine Zeichenfolge, die am Ende dieses Prozesses wird in eine Datei auf der Festplatte drehen.
Mein Problem war, dass durch die Aufzeichnung geht, um 24k, der Prozess der Verkettung der String auf ein Schmerz gedreht.
Ich habe das mit dem normalen '+'-Operator gemacht.
Als ich zum '<<' wechselte, war das wie Magie. War wirklich schnell.
Also erinnerte ich mich an meine alten Zeiten - so ungefähr 1998 - als ich Java benutzte und String mit '+' verkettete und von String zu StringBuffer wechselte (und jetzt haben wir Java-Entwickler den StringBuilder).
Ich glaube, dass der Prozess von + / << in der Ruby-Welt derselbe ist wie + / StringBuilder.append in der Java-Welt.
Bei der ersten wird das gesamte Objekt im Speicher neu zugewiesen, bei der anderen verweist es lediglich auf eine neue Adresse.