我在服务器上直接从git仓库使用clojure CLI运行我的clojure应用。我在虚拟服务器上启动时遇到了一个问题,大概耗时5-25分钟,而在我笔记本电脑上只需约1分钟。在这段时间里,CPU使用率几乎为零,4GB的RAM中几乎没有被使用。我觉得这可能是一种锁定条件。看起来这很可能与一个依赖项有关,因为我以前从未遇到过这种情况。有哪些方法可以诊断出问题所在?
$ time clojure -A:server -e "(require 'riverdb.server)"
WARNING: requiring-resolve already refers to: #'clojure.core/requiring-resolve in namespace: datomic.common, being replaced by: #'datomic.common/requiring-resolve
real 24m49.555s
user 1m58.976s
sys 0m3.672s
我尝试了https://clojure.org/guides/dev_startup_time上的解决方案,我觉得这有所帮助,但如果我多次运行它,延迟差异很大。
$ time clojure -A:dev:server -e "(require 'riverdb.server)"
real 5m19.167s
user 0m29.084s
sys 0m1.724s
$ time clojure -A:dev:server -e "(require 'riverdb.server)"
real 19m53.558s
user 0m31.972s
sys 0m1.988s