# cljs中普通与瞬态数据结构性能对比

chrome 67; CPU:2.2 GHz Intel Core i7 内存:16 GB 1600 MHz DDR3

官方的例子:

(defn vrange [n]
  (loop [i 0 v []]
    (if (< i n)
      (recur (inc i) (conj v i))
      v)))

(defn vrange2 [n]
  (loop [i 0 v (transient [])]
    (if (< i n)
      (recur (inc i) (conj! v i))
      (persistent! v))))

(def v (vrange 1000000))    ;; 409 ms
(def v2 (vrange2 1000000))  ;; 115 ms
// 纯js 28.4ms
console.time('abc');
for (let i = 0; i <= 1000000; i++) a.push(i);
console.timeEnd('abc');
💗 博主正处于裸辞待业状态,欢迎 商务合作 💗

相关文章

shadow-cljs项目 在 proto repl 切换namespace

按官方文档中的说明已经能正常连接proto-repl,但是repl中不能切换到源码所在的namespace,不能在开发期间执行业务代码 查看官方文档操作,下面列出简单步骤,加粗为注意事项 https://shadow-cljs.github.io/docs/UsersGuide.html#protorepl_atom 添加 proto-repl 依赖 watch启动,**并在 ...

React Hooks 的思考

前言 听说 Hooks 有一段时间了,一直没去看文档。最近终于想起这事儿,浏览一遍文档后,立即燃起了一种“兴奋感”。 这种“兴奋感”犹如当初看见“箭头函数”、“async/await”一样。 所以,即使在有很多分析文章的情况下,仍想再写一些个人的思考和感受。 [react hooks官方文档](https://reactjs.org/docs/hooks-intro.html ...

ClojureScript + node + hotreload

假设你已经创建了项目,并安装了shadow-cljs相关依赖,若未完成请参考文档创建项目:https://shadow-cljs.github.io/docs/UsersGuide.html *本文示例采用shadow-cljs打包构建,详细资料参考[官方文档](https://shadow-cljs.github.io/docs/UsersGuide.html#target-node- ...