由 alexmiller 发表评论
我同意,这是一个不受限制的陈述。
在hasheq中添加更多分支会产生真正的成本 - 这些集合检查会影响每个hasheq。运行完整的Clojure构建时,我看到了以下具有超过100次发生次数的类(请注意,这些都是Java集合 - 这种情况本身就不存在于Clojure构建中)
clojure.lang.Var 107001502 java.lang.Class 2651389 java.lang.Character 2076322 java.util.UUID 435235 java.util.Date 430956 clojure.lang.Compiler$LocalBinding 116830 java.lang.Boolean 112361 java.util.regex.Pattern 325
我们将在每个hasheq的路上添加4个额外的instanceof检查。这也可能破坏任何JVM内联。
Rich 说 "hasheq/equiv的non-values应该放弃所有赌注" WHERE Java collections显然是非值的一部分。