[C++/CLI] Mixed-Type 사용시의 메모리 해제 문제

네이티브 C++에서의 DLL을 CLR 환경에선 Assembly라 부른다. 그런데 CLR 환경에선 한번 불러들인(Load) 어셈블리를 마음대로 해제(Unload)할 수가 없다. 애초에 System::Reflection::Assembly에는 Unload에 해당하는 함수 자체가 없다. 단 독립적인 메모리 공간을 갖는 애플리케이션…

7 Comments

(2007.07.13) 오늘의 Visual C++ 소식

Microsoft Visual C++ 2005를 사용한 프로필 기준 최적화 요약 링크 시간 코드 생성(LTCG)과 프로필 기준 최적화(PGO)를 사용하면 20% 이상 성능을 향상시킬 수 있다고 한다. ATL 서버 라이브러리와 도구 소스코드가 공개되었다.…

0 Comments

Deep Inside .NET garbage collectors

GC 모드 값에 따라 가비지 콜렉터의 개수가 달라진다고 했었다. 그러나 의문이 남았다. 한 프로그램에 애플리케이션 도메인이 여러 개 있을 때는 어떻게 될까? C++/CLI에서 Managed Thread와 Native Thread를 혼용해서 사용하면 어떻게…

0 Comments

[C++/CLI] Thread Local Storage 사용 문제

Native C++로 작성한 소프트웨어를 C++/CLI로 포팅해야 하는 상황이었다. 컴파일러에 /clr 옵션을 주고 빌드하자 한번에 성공했다. 기뻐하며 F5 키를 눌러 실행시키는 순간, 런타임 오류가 발생했다. 각설하고 이틀 가량 조사하고 테스트한 결과,…

Comments Off on [C++/CLI] Thread Local Storage 사용 문제

[C++/CLI 디버깅] 어느 게 CLR 코드야?

#pragma managed 또는 #pragma unmanaged를 섞어가며 코드를 작성해 놓으면, 디버깅 중에 지금 보고 있는 코드가 CLR 코드인지, Native 코드인지 구분이 안 갈 때가 있다. 이런 경우엔 우선 로컬 변수의 초기화가…

0 Comments

AMD, Transmeta에 투자하다

Advanced Micro Device는 지난 금요일 Transmeta에 750만 달러를 투자하기로 하였다고 합니다.회사측의 언급으로는 주식의 가치가 앞으로 어떻게 될지는 일종의 도박과도 같지만 거래는 Transmeta의 우선주에 대해 교환으로  이뤄질 것이라고 합니다.두회사 모두 즉각적인…

0 Comments

.NET 가비지 콜렉터의 종류

Server GC 멀티 프로세서(또는 멀티 코어)를 탑재한 컴퓨터에서만 작동한다. 각 프로세서마다 하나의 GC 힙(그리고 하나의 GC 쓰레드)를 할당하고, 가비지를 병렬로 수집한다. 세 가지 GC 모드 중 가장 성능과 확장성이 좋다.…

0 Comments

[C++/CLI] 조사한 내용 정리

컴파일 C++ 프로젝트 전체에 /clr 컴파일 옵션을 주지 않고도 파일(.cpp) 별로 컴파일 옵션을 설정하는 것이 가능하다. /clr 옵션은 '/Yu: 미리 컴파일된 헤더 사용', '/Gy: 함수 수준 링크 사용' 등의 몇몇…

0 Comments