메모리 분리
분산 애플리케이션에서 [in, out, unique] 또는 [in, out, ptr] 포인터 매개 변수를 사용하는 경우 애플리케이션의 서버 쪽에서 포인터 매개 변수의 값을 null로 변경할 수 있습니다. 이후에 서버가 클라이언트에 null 값을 반환하는 경우 원격 프로시저 호출 전에 포인터에서 참조하는 메모리는 클라이언트 쪽에 여전히 있지만 더 이상 해당 포인터에서 액세스할 수 없습니다(별칭이 지정된 전체 포인터의 경우 제외). 이 메모리는 분리되었다고 합니다. 이를 메모리 누수라고도 합니다. 클라이언트에서 메모리를 반복적으로 분리하면 클라이언트에서 사용 가능한 메모리 리소스가 부족합니다.
서버가 포함된 포인터를 null 값으로 변경할 때마다 메모리를 분리할 수도 있습니다. 예를 들어 매개 변수가 트리와 같은 복잡한 데이터 구조를 가리키는 경우 애플리케이션의 서버 쪽은 트리의 노드를 삭제하고 트리 내부의 포인터를 null로 설정할 수 있습니다.
메모리 누수로 이어질 수 있는 또 다른 상황에는 포인터를 포함하는 준수, 다양 및 열린 배열이 포함됩니다. 서버 애플리케이션이 배열 크기 또는 전송된 범위를 지정하는 매개 변수를 수정하여 더 작은 값을 나타내면 스텁은 더 작은 값을 사용하여 메모리를 해제합니다. size 매개 변수보다 큰 인덱스가 있는 배열 요소는 분리됩니다. 애플리케이션은 전송된 범위를 벗어나는 요소를 해제해야 합니다.