stackoverflow. C# (raytracer)에서 응용 프로그램을 작성했습니다. 문제는 raytracer가 아닌 광선 사용입니다. 응용 프로그램은 시간이 지남에 따라 더 많은 RAM을 소비합니다. 해상도는이 숫자가 5백메가바이트에 달려있다 큰 경우, 최대 다음 1백20메가바이트을 80메가바이트를 시작하고 : 레이트 레이싱되지 동안너무 많은 램을 사용하는 C# 응용 프로그램
램 사용량 : 레이트 레이싱 동안 10메가바이트 시작은 최대 최대
램 usege 간다.
VS Diagnostics 도구를 사용하여 응용 프로그램 가비지 수집이 1 분에 10gc와 비슷한지 확인했습니다. 응용 프로그램이 광선 추적을하는 동안이 숫자는 더 커집니다. Raytracer는 거대한 픽셀 배열을 반환합니다. raytracing 후 null로 픽셀 배열을 설정했지만 응용 프로그램 RAM은 500-600 MB RAM 범위에 고정됩니다.
가비지 또는 프리 램을 추가로 수집 할 수있는 옵션이 있습니까?
EDIT 이것은 WPF 또는 다른 형식이 아닌 WinForms 응용 프로그램입니다.
왜 500MB _ 왜 많이입니까? 유용 할 때 mem를 시스템에 반환합니다. 잘못된 번호를보고 있습니다. –
500mb는 레이 트레이싱 중에도, 심지어 500mb의 레이 트레이싱이 여전히 프로그램 메모리에 남아있는 동안에도 그리 많지 않습니다. –
@Yahya Gedik, 자세한 내용을 보려면 메모리 프로파일 러 (예 : [dotMemory] (https://www.jetbrains.com/dotmemory/))를 사용하십시오. 메모리 누수가있을 수 있습니다. –