Biarkan saya menunjukkan kepada Anda semua pengalaman saya dengan itu.
Saya memiliki permintaan yang mengembalikan 32 ribu catatan, untuk setiap catatan saya memanggil metode untuk memformat catatan basis data itu menjadi string yang diformat dan kemudian menggabungkannya menjadi String yang pada akhir semua proses ini akan berubah menjadi file dalam disk.
Masalah saya adalah bahwa dengan catatan berjalan, sekitar 24rb, proses menyatukan String menjadi sangat menyakitkan.
Saya melakukan itu menggunakan operator '+' biasa.
Ketika saya berubah ke '<<' itu seperti sihir. Sangat cepat.
Jadi, saya ingat masa lalu saya - semacam 1998 - ketika saya menggunakan Java dan menyatukan String menggunakan '+' dan berubah dari String ke StringBuffer (dan sekarang kami, pengembang Java memiliki StringBuilder).
Saya percaya bahwa proses + / << di dunia Ruby sama dengan + / StringBuilder.append di dunia Java.
Yang pertama realokasi seluruh objek dalam memori dan yang lainnya hanya menunjuk ke alamat baru.