我有一个来自分析提供商的大型数据集。
它以 JSON 的形式出现,我将其解析为哈希,但由于集合的大小,我在内存使用量上激增。几乎所有内容都以字符串开头(一些值是数字),当然键会重复很多次,但许多值也会重复。
所以我在想,为什么不也象征所有(非数字)值呢?
我发现了一些关于潜在问题的讨论,但我认为对 Ruby 有一个全面的描述会很好,因为这些问题似乎取决于实习过程的实现(当你符号化一个字符串时会发生什么)。
我发现这是在谈论 Java: 使用 java.lang.String.intern() 是一种好习惯吗?
- 实习过程可能很昂贵
- 内部字符串永远不会被释放,导致内存泄漏
(除了最后一点有一些争论。)
那么,任何人都可以详细解释何时不在 Ruby 中实习字符串?