Marklogic:对Marklogic的第一个请求需要时间

Marklogic:对Marklogic的第一个请求需要时间,marklogic,Marklogic,我在我的XXX.xqy中有一个简单的代码,可以将文档保存在Marklogic中。 第一个保存请求总是比后续请求花费更多的时间 我尝试使用trace(),它显示保存在不到1ms的时间内完成,但完成请求需要时间 我的XXX.xqy中只有xdmp:document-insert()语句 我们可以在jmeter负载测试中看到相同的结果,第一个请求需要大约600毫秒的时间,而不是下降到3-6毫秒 ML是第一次编译代码吗? 有没有办法对代码进行预编译?这可能是因为模块缓存。第一次运行模块时,它将编译该模块。

我在我的
XXX.xqy
中有一个简单的代码,可以将文档保存在Marklogic中。 第一个保存请求总是比后续请求花费更多的时间

我尝试使用
trace()
,它显示保存在不到1ms的时间内完成,但完成请求需要时间

我的
XXX.xqy
中只有
xdmp:document-insert()
语句

我们可以在jmeter负载测试中看到相同的结果,第一个请求需要大约600毫秒的时间,而不是下降到3-6毫秒

ML是第一次编译代码吗?
有没有办法对代码进行预编译?

这可能是因为模块缓存。第一次运行模块时,它将编译该模块。缓存上也有生命周期请参见

如果不发布再现问题的代码示例,我不确定是否有人能够帮助您。我不会导入任何模块。我只是在abc.xqy:xdmp:documentinsert($uri,xdmp:get-request-body()/node())中有以下语句。。。。第一个请求需要时间(500毫秒以上),之后需要10毫秒左右才能完成插入。如果我在大约125秒后插入,它再次需要500毫秒。看起来这个代码有一些缓存,125秒后被清除。我甚至尝试将“模块缓存超时”的值从管理屏幕修改为2秒,但结果也是一样的。缓存超时应该远远高于125秒。您为每个请求插入的文档是否相同?相同的uri相同的值?它总是新的文档,新的uri。在这一点上,我还是说模块缓存。设定在什么位置?