Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 为什么“莱恩跑”不是“莱恩蹦床”?_Clojure_Leiningen - Fatal编程技术网

Clojure 为什么“莱恩跑”不是“莱恩蹦床”?

Clojure 为什么“莱恩跑”不是“莱恩蹦床”?,clojure,leiningen,Clojure,Leiningen,在我看来,leinrun和leintrampoline之间的唯一区别在于后者退出了Leiningen的JVM以节省内存 这似乎总是一个好主意,那么为什么这项功能不包括在lein-run中,然后去掉lein-trampoline?lein-trampoline可以用于任何leiningen任务,而不仅仅是lein-run。例如,lein蹦床测试 本质上,lein trampoline杀死了原来的leiningen进程,这样当任务开始运行时,只有为运行Clojure内容而生成的实际JVM才是活动的。

在我看来,
leinrun
leintrampoline
之间的唯一区别在于后者退出了Leiningen的JVM以节省内存


这似乎总是一个好主意,那么为什么这项功能不包括在
lein-run
中,然后去掉
lein-trampoline

lein-trampoline
可以用于任何leiningen任务,而不仅仅是
lein-run
。例如,
lein蹦床测试


本质上,
lein trampoline
杀死了原来的leiningen进程,这样当任务开始运行时,只有为运行Clojure内容而生成的实际JVM才是活动的。这对于shell脚本非常有用,因为杀死实际的JVM不会杀死leiningen进程,反之亦然。

根据个人经验(我从未真正验证过这一点,所以我可能是错的),trampoline使使用监控守护进程(如监控进程)跟踪进程变得不可能。我的经验与Erik的完全相反。在FreeBSD上使用daemontools时,服务的运行脚本中的“lein run”意味着“svc-d”终止了lein进程并孤立了子服务JVM。”莱恩·蹦床解决了这个问题。我想,这取决于你的主管守护进程的要求。也许我很笨,但这从哪方面回答了最初的问题?因为“蹦床”功能比“莱恩跑”更适用于更多的任务,所以删除“莱恩蹦床”并默认“莱恩跑”的行为类似于“莱恩蹦床跑”意味着你今天将无法完成“莱恩蹦床测试”。