2010-02-24 6 views
3

CLR 2.0에서는 인턴 된 모든 문자열을 볼 수있는 방법이 있습니까? CLR Profiler API를 살펴본 결과 문자열이 인턴 될 때 모니터링 할 API 호출을 볼 수 없습니다. 또한, 인턴 된 문자열의 범위는 무엇입니까? App Domain이 언로드되거나 App Domains로 확장되면 내부 문자열이 수집됩니까?.NET 인턴 된 문자열을 보려면 어떻게해야합니까?

답변

4

문자열은 .NET 2.0에서 기본적으로 인턴됩니다. 그러나 문자열은 인턴됩니다. ... 당신의 API 호출에 관해서,

http://community.bartdesmet.net/blogs/bart/archive/2006/09/27/4472.aspx

또한 최적화 된 빌드와 테스트 확인 : 다음 문서 개념에 도움이 되거 수 있습니다. 디버그 빌드는 기본적으로 문자열 인터 네이션을 활성화하지 않을 수 있습니다.

+0

설명을위한 Thx. 여하튼 나는 항상 이것에 fscks를 처리하는 것을 보인다. : - | –

+0

링크를 가져 주셔서 감사합니다. 실제로 해당 사이트를 goog에서 찾을 수있었습니다. 많은 문자열 조작을 수행하는 손으로 롤백 된 ETL 프로세스에서 작업 중이며 많은 메모리 소비가 있습니다. 나는 활용하고있는 API가 문자열 뒤에 인턴을하고 있었고 인턴 "수영장"의 문자열을 볼 수 있거나 인턴 된 문자열의 성장률을 모니터링 할 수있는 성능 카운터 또는 VS 디버그 창을 찾고 있다고 추측했다. . –

+0

인턴 된 문자열을 모니터 할 수있는 게 있다고 생각지 않습니다. 당신은 그것을하는 무언가를 쓸 수 있지만 시간 낭비 일 가능성이 있습니다. 문자열이 인턴 될 핵심 사례가 몇 가지 있습니다. 가장 일반적으로, 상수 문자열 데이터, 어셈블리로 컴파일 된 문자열 또는 런타임에 모든 의도와 목적에 맞는 문자열입니다. 일반적으로 말해서, 나는 .NET의 자동 인턴 관리를 망치지 않을 것이다. – jrista

관련 문제