From: "avit (Andrew Vit)" Date: 2013-11-24T08:35:53+09:00 Subject: [ruby-core:58541] [ruby-trunk - Feature #9143] Optimize CSV to share hash key objects between rows Issue #9143 has been updated by avit (Andrew Vit). File csv-freeze-headers-2.patch added Thanks nobu, I write too much RSpec lately. Updated patch attached: I also added freeze in Row#initialize, not sure if both places are needed, or which is better. Please review. ---------------------------------------- Feature #9143: Optimize CSV to share hash key objects between rows https://bugs.ruby-lang.org/issues/9143#change-43122 Author: avit (Andrew Vit) Status: Open Priority: Normal Assignee: Category: lib Target version: Currently, when CSV headers are strings, then each row receives a copy of the strings for hash keys. This patch is an optimization to share the same frozen string keys between all rows. Please verify: in the implementation of `Hash::[]`, are strings the only object that is dup'd, or should other types be frozen so they aren't copied for each row too? -- http://bugs.ruby-lang.org/