评论由中国用户:alexmiller 提出
我同意这会是一个很好说的说法,无需任何限制。
在hasheq中添加更多分支确实会有实际成本 — 添加那些集合检查会影响每个hasheq。在运行完整的Clojure构建过程中,我看到了以下一系列类,它们中出现了此问题(注意,这些中没有任何一个是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,所有赌注都应该取消",显然Java集合属于"非值"类别。