如果我們首次調用某個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