RAMで約2GBを占める大きなデータ構造、ツリーがあります。葉には clojure セットが含まれ、枝には refs が含まれます。ツリーは、大きなフラット ファイルを読み取って解析し、行をツリーに挿入することによって構築されます。ただし、これには約 30 秒かかります。ツリーを一度構築し、それを clj ファイルに出力してから、ツリーをスタンドアロンの jar にコンパイルして、大きなテキスト ファイルを再読み込みせずにツリー内の値を検索できるようにする方法はありますか? これにより、30 秒のツリー ビルドが削減されると思いますが、これにより、テキスト ファイルを必要とせずにスタンドアロンの jar をデプロイするのにも役立ちます。
これで私の最初のスイングは失敗しました:
(def x (ref {:zebra (ref #{1 2 3 4})}))
#<Ref@6781a7dc: {:zebra #<Ref@709c4f85: #{1 2 3 4}>}>
(def y #<Ref@6781a7dc: {:zebra #<Ref@709c4f85: #{1 2 3 4}>}>)
RuntimeException Unreadable form clojure.lang.Util.runtimeException (Util.java:219)