gpt4 book ai didi

clojure - 更新原子以最小化内存使用的最佳方法是什么

转载 作者:行者123 更新时间:2023-12-01 12:50:34 25 4
gpt4 key购买 nike

我有一个原子,

(def a (atom {:a <some-value>}))

并且它需要不断更新,从长远来看,内存效率最高的调用是什么...?

(swap! a assoc :a <next-value>)

(swap! a (fn [_] {:a <next-value>}))

直觉上,根据我听到的关于持久结构的讨论,我认为第二种方式会慢一点,但从长远来看会更好......但我想听听第二个意见。

最佳答案

  1. 第一种形式无效。
  2. 内存效率无关紧要:一旦旧值被丢弃,您如何获得新值对长期内存使用量没有影响。
  3. 您似乎想要reset!,而不是swap!
  4. 考虑为什么要如此频繁地更新一个原子,尤其是当您根本不关心它以前的值时。您通常可以使用纯函数方法更轻松地完成类似的事情,或者至少使用考虑旧值的 swap! 函数。

关于clojure - 更新原子以最小化内存使用的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12776851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com