我被告知Saxon内部有一些硬限制,可以防止它使用超过X G的RAM。我知道基于32位和64位Java分配超过2G的问题但是想知道Saxon本身是否有任何限制。声称的限制是2G,但我正在考虑是否有基于Saxon的限制,或者是Java的所有限制。
答案 0 :(得分:1)
不,Saxon内部对你可以分配的内存量没有限制:无论Java VM支持什么。
然而,Saxon使用Java数组和字符串,这些数据具有Java语言规范强加的大小限制,允许使用32位整数寻址数组和字符串。因此,您可能会遇到不受可用内存量限制的限制,而是受Java对象的最大大小限制。例如,在TinyTree数据结构中,树中节点的数量限制为2 ^ 31,文档节点的字符串值(即文档中所有文本节点的串联)不能超过2 ^ 31字符。