gpt4 book ai didi

java - 使用迭代时超出 Clojure GC 开销限制

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:51:03 24 4
gpt4 key购买 nike

对重复的内容表示歉意,但我无法通过阅读其他帖子来解决此问题。我正在尝试运行计算密集型迭代算法。下一个迭代由函数“更新”给出,我通过

收集所有迭代
(def iterates (doall (take 1000 (iterate update initial-state))))

其中 initial-state 是我用来初始化算法的第 zeroeth 迭代。不幸的是,我不能提供一个最小的例子......更新是一个非常复杂的函数,它将 map 数据结构作为输入并输出更新的 map 数据结构。对于高达 800 次的总迭代,代码运行良好,但对于任何更大的迭代都会产生以下错误。一般认为,仅仅增加垃圾收集器可用的大小是不够的,因为这是更深层次问题的征兆(也许)。在其他帖子中提出的问题非常具体,但我的更新功能非常复杂。那么我怎样才能按照此处提供的一般性来解决这个问题呢?我可以使用某些工具实用程序吗?

  1. 由 java.lang.OutOfMemoryError 引起超过 GC 开销限制

           Double.java:  519  java.lang.Double/valueOf
    Numbers.java: 611 clojure.lang.Numbers$DoubleOps/multiply
    Numbers.java: 148 clojure.lang.Numbers/multiply
    core.clj: 21 ssm4clj.core/corr
    core.clj: 6 ssm4clj.core/corr
    core.clj: 42 ssm4clj.core/innovation
    core.clj: 40 ssm4clj.core/innovation
    core.clj: 2522 clojure.core/partial/fn
    core.clj: 2646 clojure.core/map/fn
    LazySeq.java: 40 clojure.lang.LazySeq/sval
    LazySeq.java: 49 clojure.lang.LazySeq/seq
    RT.java: 521 clojure.lang.RT/seq
    core.clj: 137 clojure.core/seq
    core.clj: 2654 clojure.core/map/fn
    LazySeq.java: 40 clojure.lang.LazySeq/sval
    LazySeq.java: 49 clojure.lang.LazySeq/seq
    Cons.java: 39 clojure.lang.Cons/next
    RT.java: 688 clojure.lang.RT/next
    core.clj: 64 clojure.core/next
    protocols.clj: 168 clojure.core.protocols/fn
    protocols.clj: 124 clojure.core.protocols/fn
    protocols.clj: 19 clojure.core.protocols/fn/G
    protocols.clj: 31 clojure.core.protocols/seq-reduce
    protocols.clj: 75 clojure.core.protocols/fn
    protocols.clj: 75 clojure.core.protocols/fn
    protocols.clj: 13 clojure.core.protocols/fn/G
    core.clj: 6545 clojure.core/reduce
    core.clj: 6527 clojure.core/reduce
    core.clj: 347 ssm4clj.core/mean-conditional
    core.clj: 319 ssm4clj.core/mean-conditional
    REPL: 332 ipp4clj.multiplexing/update-single-gp-mean
    REPL: 329 ipp4clj.multiplexing/update-single-gp-mean

最佳答案

配合@StefanKamphausen 的评论。我认为 jvisualvm 也会帮助你很多。 Here是对用法的演练。

关于java - 使用迭代时超出 Clojure GC 开销限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42473294/

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