.NET Bitmap 클래스에서 GDI를 사용합니다..NET에서 몇 개의 비트 맵을 만들 수 있습니까?
만들 수있는 비트 맵 수를 알고 싶습니다.
너무 많은 비트 맵을 만들면 메모리 누수가 발생합니까?
.NET Bitmap 클래스에서 GDI를 사용합니다..NET에서 몇 개의 비트 맵을 만들 수 있습니까?
만들 수있는 비트 맵 수를 알고 싶습니다.
너무 많은 비트 맵을 만들면 메모리 누수가 발생합니까?
MSDN은 65,536 GDI 세션 당 처리의 이론적 인 한계가있다
을 말한다. 그러나 사용 가능한 메모리의 영향을 받기 때문에 세션 당 열 수있는 GDI 핸들의 최대 수는 일반적으로 더 낮습니다.
출처 : http://msdn.microsoft.com/en-us/library/ms724291%28VS.85%29.aspx
프레임 워크를 사용하면 메모리 누수가 발생하지 않습니다. Bitmap 클래스는 인스턴스화가 완료되면 인스턴스 자체를 처분하는 방식으로 이루어 지므로 자체 IDisposable과 동일하므로 Dispose를 잊지 않아도 문제가 발생하지 않습니다.
얼마나 많은 메모리를 만드 느냐에 달려 있습니다.
비트 맵은 GDI + 개체이므로 시스템에서 해당 개체의 수가 제한적입니다. 물론 시스템을 조정할 수 있습니다. 나는 당신이 메모리 누수를 얻지 않을 것이라고 생각하지만 그 한계를 초과 할 경우를 대비해 시스템 예외를 생각한다.
당신은 얼굴 메모리 누수 문제가 될 수있는 것입니다하지만 당신은 간단한 코드를 세션 당
using (frame) {
frame.Save(outStream, jpegCodec, parameters);
}
GDI의 한계 핸들입니다 65536를 작성하여 문제를 해결할 수 있습니다. 참조 http://msdn.microsoft.com/en-us/library/ms724291(VS.85).aspx
Windows XP 및 비스타 - 기본 제한
Windows XP 및 Vista의 기본 제한은 10,000입니다. 내가 그것까지 HashMorePages으로 던져 예외 (약 4800 페이지) = TRUE를 PrintPreview 테스트, 각각의 페이지 2를 필요로 : GDI는 응용 프로그램이 "작업 관리자"
이 http://msdn.microsoft.com/en-us/library/ms724291(VS.85).aspx
주에서이 객체의 당신은 수를 모니터링 할 수 있습니다 Gdi + 개체.
메모리 누수 : GDI 핸들은 프로세스에 전용입니다. 프로세스가 끝나면 S.O. 모든 GDI 개체를 해제합니다. – x77