2010-05-05 5 views
1

WPF에서 개발 한 .Net 3.5 SP1을 사용하고 있습니다.WPF PresentationFontCache. 이게 뭐야?

내 WPF 응용 프로그램을 실행할 때 작업 목록의 "프로세스 목록"에 "PresentationFontCache"라는 프로세스가 나타납니다. WPF 응용 프로그램을 닫은 후에도 실제로 프로세스가 무해하게 표시되지만 메모리에 실제로 저장됩니다. 이 과정은 실제로 무엇입니까? 그것은 무엇을합니까?

그래서 메모리 사용량을 확인하려고 할 때 (프로세스를 여러 번 실행하고 닫음으로써) 프로세스가 일부 메모리가 여전히 사용 중임을 알 수 있습니다. 또한이 프로세스로 인해 배가 고프던 자원 (특정 조건에서 30 %의 CPU 사용량 및/또는 100MB의 메모리 사용량)이 될 수 있습니다.

이 프로세스를 생성하는 책임이있는 "Windows Presentation Foundation Font Cache 3.0.0.0"이라는 Windows 서비스가 있습니다. 이 서비스는 일반적으로 사용되는 글꼴 데이터를 캐싱하여 WPF 응용 프로그램의 성능을 최적화합니다. WPF 응용 프로그램은 이미 실행중인 경우이 서비스를 시작합니다. 그렇게하면 WPF 응용 프로그램의 성능이 저하되지만 비활성화 할 수 있습니다.

그렇다면 WPF 응용 프로그램을 닫은 후에 Windows 서비스 자체가 프로세스를 닫지 않는 이유는 무엇입니까?

또는이 서비스가 WPF 응용 프로그램에 사용 된 글꼴 정보를 실제로 캐시하므로 다음 번에 비슷한 응용 프로그램을 재실행 할 때 응용 프로그램의 글꼴을 다시 사용하지 않고 캐시를 사용할 수 있습니까? 그렇게 가비지 수집 할 수없는 데이터 유형이 아닌 경우? 그게 메모리 누수로 이어질 가능성이 없는가?

저를 격려하십시오.

thxxVinit.

답변

2

이 서비스는 WPF 응용 프로그램의 성능을 향상시키고 WPF 프로그램 (또는 동일한 프로그램의 다른 인스턴스) 간의 공유 리소스 양을 늘리도록 설계되었습니다. 이 소스는 Reference Source Code Center의 일부로 사용할 수 있으며 일반적으로 WPF 응용 프로그램 성능에 대한 추가 정보는 here입니다.

이 서비스가 문제를 일으키는 격리 된 인스턴스가 있지만 그 일이 무엇인가에 따라 CPU 스파이크 및 100MB 메모리 사용이 문제가 있다고 생각하지 않습니다.

너무 많은 리소스를 차지한다고 생각되면 서비스를 안전하게 비활성화 할 수 있지만 응용 프로그램에 어떤 영향이 있는지 프로파일 링/측정하는 것이 좋습니다.

관련 문제