我在服务器上直接从 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