【发布时间】:2012-06-26 13:24:33
【问题描述】:
也许是一个简单的问题,但我们正在讨论使用这个sniper是否更好:
if %w(production staging).include?(Rails.env)
对
if ["production","staging"].include?(Rails.env)
我们只是想了解哪种方式最高效,忽略 Ruby 的语法。根据我在网络上的信息, %w 文字似乎是提供的空白字符串上 string.split 的简写。
但实际上哪一个是最快的?
p.s : 答案来源将不胜感激。
【问题讨论】:
-
您在其他地方遇到了更糟糕的性能问题。比如,我不知道,数据库?花时间修复这些更有意义。
-
Shees。 Stackoverflow 是用来发布问题的,不是吗?我们想知道这个问题。我们的数据库是完全集群的,等等,有集群的网络服务器等等。我们正在满足我们的要求和一切,我们只是好奇这个花絮,这有多难
-
@LarsHaugseth, @NekoNova:顺便说一下,
Rails.env不是简单的字符串。您可以使用if Rails.env.production? || Rails.env.staging?并避免使用临时数组。 -
@SergioTulentsev 虽然这个实现依赖于
method_missing,但这也很昂贵,只是方式不同。 -
Sergio,如果我们现在收到关于
ActiveSupport::StringInquirer性能的问题,那是你的错 :)
标签: ruby arrays performance