如果我们首次调用某个xquery
模块需要一些时间。随后的调用调用速度更快可能是因为xquery
模块已解析并存在于模块高速缓存中。xdmp:在MarkLogic中调用调用
考虑以下情形: -
HTTP Server1- xdmp:invoke('/a/sample.xqy')
HTTP Server2 - xdmp:invoke('/a/sample.xqy')
两个应用服务器指向相同的模块DB。
问题: -
后续调用为什么电话是更快?
但是,如果我们在diff应用服务器中调用相同的模块,调用速度会很慢。对于缓存目的,这个xquery模块会被视为基于appserver的单独对象吗?
MarkLogic如何决定哪个条目移出模块缓存?
在调用
xdmp:invoke
后,MarkLogic将模块保持在高速缓存状态多久?是否有任何ML配置来增加模块缓存大小?
模块高速缓存不同于树高速缓存和列表高速缓存。模块缓存缓存已解析的XQuery和XSLT,也可能是JavaScript。这与缓存模块源不同,因为解析源需要时间。 – mblakele
为了确认mblakele,模块缓存(xquery,xslt,rewriters)是每个应用服务器的原因,每个应用服务器的环境都不相同,包括认证,模块根,数据库,模块数据库,模式数据库,安全数据库,重写器和其他。在不同的情况下,相同的确切文件可能会“编译”为完全不同的东西。这说..什么是'慢'? XQuery解析器速度相当快,但速度并不像没有运行那么快,但服务器经过优化以平衡整体性能。它有助于查看整体服务器性能。 – DALDEI