現時点では解説がパーフェクトではないのを自覚しているが、めんどくさいので後でパーフェクトにする Frozen String Literalとは "str".freezeのようなリテラルのこと。 Feature#8992 (r43627) でこのようなリテラルを書くと事前にallocate & freezeされた文字列オブジェクト(内部的にはfstringと呼ばれる) が取得されるようになり、Ruby 2.1以降ではイミュータブルな文字列が必要な場面でこのリテラルを使うと高速になる。 以下、それに関連した機能や最適化がどのバージョンで入ったか、各バージョンでのお勧めの書き方をまとめておく。 Ruby 2.0.0まで まだ入ってないので気にしなくてよい Ruby 2.1〜2.2 Ruby 2.1: Use String#freeze and compiler tricks to replace