小编Voj*_*jta的帖子

Clojure:为什么=和字符串上的.equals有不同的性能?

我是Clojure的新手,并且具有以下简单的功能

(defn find-func
[what seq]
   (filter #(.equals what %) seq)
)
Run Code Online (Sandbox Code Playgroud)

我注意到上面的函数明显慢于我用.替换.equals = =

(defn find-func
[what seq]
   (filter #(= what %) seq)
)
Run Code Online (Sandbox Code Playgroud)

我在jdk 1.8.0_25,clojure 1.8上从REPL运行时观察到它:

(find-func "10" (map str (range 0 800000)))
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我虽然从另一个stackoverflow回答(堆栈溢出问题)=调用.equals所以不应该有任何性能差异.从那时起就优化了吗?感谢您的任何澄清.

string performance clojure

3
推荐指数
1
解决办法
150
查看次数

标签 统计

clojure ×1

performance ×1

string ×1