String vs GString Performance

ani*_*ish 6 groovy

我们是否有硬性能数据证明单引号优于双引号?对于双引号,大多数人会更舒服.

我知道在我们评估表达式时可以使用GString,并执行延迟评估

Kal*_*see 4

以下是 09 年完成的一些测试的链接:

http://pstehlik.com/2009/01/the-speed-difference- Between-the- Different-types-of-strings-in-groovy-and-grails/

结果似乎确实有很大差异,具体取决于您使用的是 String 还是 GString、您对该对象执行的操作以及您是在控制台还是在 Jetty 上运行。

但差不多三年前,情况可能已经发生了很大变化。测试脚本仍然位于页面底部,因此您可以尝试在当前的 Groovy 版本中运行该脚本来查看现在的结果。您还可以查看他的帖子,其中可能会提供更多信息。

就我个人而言,我经常使用单引号字符串,当我需要使用变量替换时,只使用双引号 GString。但从未测试过性能差异。

  • 需要注意的是:如果您的双引号字符串不包含任何动态内容(即:没有 `$var` 或 `${var}` 项),它会自动转换为普通字符串。因此,通常没有理由担心字符串类型。双引号字符串的唯一问题是您必须转义美元符号。通过从控制台打印 `"foo".class` 来检查它。 (4认同)