.net 응용 프로그램 (Windows 서비스로 실행 중)이 있습니다. 때로는 메모리 누수가 시작됩니다 (1GB + RAM 사용). 이 메모리 누수의 원인을 어떻게 알 수 있습니까? 어떤 도구가 있으며 어떻게 사용합니까?.net 응용 프로그램에서 메모리 누수의 원인을 찾는 방법
답변
.NET 응용 프로그램에서 메모리 누수를 디버깅하기 위해 WinDbg과 SOS-extesion을 사용했습니다.
here 및 here으로 시작하십시오. 또한 Tess Ferrandez' blog을 사용하여 WinDbg 디버깅에 대한 자세한 내용을 참조하십시오.
여기에서 시작할 수 있습니다. http://msdn.microsoft.com/en-us/library/ff650691.aspx 도구는 무료이며 사용하기 쉽지 않더라도 과거에는 mr에서 작동했습니다. 상업적인 옵션도 있지만 결코 사용하지 않습니다.
유사한 상황에서 저는 Ants 메모리 프로파일 러 또는 유사한 것을 선택하고 예상보다 많이 할당 된 객체에 대해 할당 된 객체의 수를 확인합니다. 나는 특히 형식과 다른 대상들을 묶어 놓은 사건들을 본다. 이것은 때로는 누출과 관련된 어떤 물건의 좋은 시작을 제공합니다. 거기에서 그 객체에 대한 "숨겨진"참조를 찾는 것은 일반적인 탐정 작업입니다.
나는 Ants을 한 번 사용했는데 내 문제를 해결하는 데 도움이되었습니다. Felice가 지적한 것처럼 사용 가능한 무료 도구가 있습니다.
대부분의 경우 메모리 누수는 배치되지 않은 개체에서 발생합니다. using 블록에서 모든 연결을 래핑 해보십시오. 그리고 COM + 개체 (예 : GDI + 개체 - 비트 맵 등)의 경우 Dispose()를 끝내면 항상 호출하십시오. 또한 이벤트 핸들러를 등록 취소하는 것을 잊어 버리면 많은 메모리를 사용합니다.
.NET 응용 프로그램에서 메모리 누수를 찾으려면 Scitech (http://memprofiler.com/)의 .NET 메모리 프로파일 러를 사용하는 것이 좋습니다.
- 1. .net 응용 프로그램에서 원시 메모리 누수를 찾는 방법은 무엇입니까?
- 2. IntPtr이 메모리 누수의 원인입니까?
- 3. 웹 서비스 메모리 누수의 원인
- 4. IE에서 실행되는 웹 응용 프로그램에서 메모리 누수를 찾는 방법은 무엇입니까?
- 5. Java 충돌 응용 프로그램 - Java 충돌 원인을 찾는 방법?
- 6. MKMapView removeAnnotations가 메모리 누수의 원인이됩니다.
- 7. GridView 내부의 AJAX .NET CollapsiblePanel이 메모리 누수의 원인이됩니까?
- 8. 트위스트 서버의 메모리 사용량 증가 원인을 찾는 방법은 무엇입니까?
- 9. PHP 메모리 누수의 일반적인 원인은 무엇입니까?
- 10. Java에서 메모리 누수의 두 가지 유형은 무엇입니까?
- 11. 대리인이 메모리 누수의 원인이 될 수 있습니까?
- 12. MySQL/PHP에서 "너무 많은 연결"오류의 근본 원인을 찾는 방법
- 13. Java 메모리 누수를 찾는 방법
- 14. MVC .NET 응용 프로그램에서 LINQ
- 15. 메모리 누수의 원인이되는 WMI (복수 스레드에서 실행될 때)
- 16. C# .net 응용 프로그램에서 스캐너를 사용하는 방법
- 17. .NET 응용 프로그램에서 python 스크립트를 실행하는 방법 ..?
- 18. Windows 응용 프로그램에서 시작하는 방법 (.net)
- 19. .Net 웹 응용 프로그램에서 Outlook과 통신하는 방법
- 20. HylaFax, .net 응용 프로그램에서 사용하는 방법
- 21. .NET 응용 프로그램에서 API 키를 보호하는 방법
- 22. 메모리 액세스 수를 찾는 방법
- 23. .NET 응용 프로그램에서 사용하는 메모리 양을 줄이는 방법은 무엇입니까?
- 24. .NET 응용 프로그램에서 누가 메모리 소비를 생성하는지 알아내는 방법은 무엇입니까?
- 25. 주어진 .NET 응용 프로그램에서 메모리 할당을 어떻게 볼 수 있습니까?
- 26. Windows 컴퓨터에서 일부 액세스 거부 오류의 근본 원인을 찾는 방법?
- 27. iPhone 앱에서 100 % CPU 사용의 원인을 찾는 방법
- 28. .net 응용 프로그램의 메모리 사용 제한
- 29. .NET 응용 프로그램에서 어셈블리 참조
- 30. . NET 응용 프로그램에서 Windows에 로그인
메모리가 부족할 때 얼마나 많은 메모리를 사용할 수 있습니까? 그 시점에서 메모리가 부족합니까? –
@Lasse, 사실 나는 그들의 메모리 소비가 증가함에 따라 서버를 asphixiating 시작 다양한 서비스가 있습니다. 예, 서버의 메모리가 부족합니다. –