内存孤立

如果分布式应用程序使用 [ inoutunique] 或 [inoutptr] 指针参数,则应用程序的服务器端可以将指针参数的值更改为 null。 当服务器随后将 null 值返回给客户端时,在远程过程调用之前由指针引用的内存仍存在于客户端上,但不再可从该指针 (访问,除非) 为别名的完整指针。 据说这种记忆是 孤立的。 这也称为 内存泄漏。 客户端上重复的内存孤立会导致客户端耗尽可用的内存资源。

每当服务器更改指向 null 值的嵌入指针时,内存也可能是孤立的。 例如,如果参数指向复杂的数据结构(如树),则应用程序的服务器端可以删除树的节点,并将树中的指针设置为 null。

另一种可能导致内存泄漏的情况涉及包含指针的一致性数组、可变数组和开放数组。 当服务器应用程序修改指定数组大小或传输范围的参数,使其表示较小的值时,存根使用较小的值 (s) 来释放内存。 索引大于 size 参数的数组元素是孤立的。 应用程序必须释放传输范围之外的元素。