이전에 C#으로 간단한 전체 TCP 연결 스캐너를 작성하여 DLL에 컴파일했습니다. PSObjects를 파이프 라인에 뿌려 스캔 결과를 표시합니다. CIDR/16 서브넷을 스캔하는 경우 작업 관리자에 따라 512MBi로 돌아 오는 데이터 양이 많습니다. 나는 다른 작업을위한 여유 공간을 확보하기 위해 결과를 분석 한 후에이 메모리 사용량을 할당 해제하는 방법을 찾고 싶습니다. (우리는 8 GiB 미만의 메모리로 작업해야합니다 ...). 문제는 PowerShell이이 메모리를 보류 해제 할 수 없다는 것입니다. 누구든지이 메모리 사용을 해제하는 좋은 방법을 알고 있습니까?PowerShell 3.0 및 2.0에서 메모리 할당을 해제 할 수 없습니다.
변수를 $ null, Remove-Variable로 설정하고 [GC] :: Collect()를 호출했지만 작업 관리자의 메모리 사용량이 같은 (이상) 수준으로 유지됩니다. 나는이 겉으로보기에는 단순한 일로 손실에 처해있다. 어쩌면 메모리가 할당 해제되었지만 작업 관리자가 이전 할당을보고합니다.
그건 그냥 내 물건의 모든 원시 또는 안전하지 않은 코드를 래핑하지 ... 나는 어떤 PInvoke, 버퍼에서 읽기, 또는 버퍼에 쓰기 않습니다. 오버플로를 유발할 수있는 것은 거의 없습니다. – user2400203