clojure - 多方法性能

标签 clojure

使用多种方法对性能有何影响?如果我有 2 个具有相同名称的函数,并且参数数量相同,仅类型不同(列表与 int),那么我的性能会受到很大影响吗?

换句话说,最好将我的向量添加函数命名为:“add-vector”或将其保留为“add”或可能为“+”?

(为了简单起见,让我们忽略我可能重新定义“+”等内置函数的问题)。

最佳答案

使用多种方法会产生性能成本,但除非绝对必要,否则如果它们是最好的抽象,您应该继续使用它们。

也就是说,Clojure 1.2 的 protocols为某些用例提供多方法的 native 速度替代方案,并且特别适合以前可能使用基于类型的调度的多方法的情况。

关于clojure - 多方法性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3053106/

相关文章:

linux - 为什么 nginx 不接受来自 apache bench 的超过 1024 个连接

clojure - 如何查找clojure namespace ?

unit-testing - 为符号 `with-redefs` (Clojure) 返回连续不同的值

clojure - Storm > 如何将 Java 回调集成到 Spout 中

recursion - 如何避免 Clojure 中每个宏递归的附加括号级别

clojure - 为什么 CouchDB 使用仅追加的 B+ 树而不是 HAMT

clojure:获取向量大小的时间为 O(1)

python - 为什么要将匿名函数分配给变量?

clojure - 比较 clojure 中的两个向量,无论项目的顺序如何

clojure - 如何为lein run和lein repl都定义project.clj?