사 놓은지는 꽤 되었지만 최근에서야 정독하게 된 전공서적입니다.



.Net Framework 속 깊은 부분에 대해서 심도있게 정리한 책으로 가볍게 접근하면 어려운 책입니다. 하지만 닷넷 Framework 의 속 깊은 부분에 대해 이해하기에는 많은 도움이 될 것 같습니다.


닷넷 환경에서 개발하시는 분들이라면 시간내어 살펴보시면 좋을 듯 싶네요.



목차

들어가며

1장. 성능 측정과 도구
- 측정 대상 선택
- 평균 VS. 백분위
- 측정 도구
- 요약

2장. 가비지 수집
- 기본 동작
- 구성 옵션
- 할당 비율 감소
- 가장 중요한 규칙
- 개체 수명 줄이기
- 트리의 깊이 줄이기
- 개체들 간의 참조 줄이기
- 고정 피하기
- 종료자 피하기
- 큰 개체 할당 피하기
- 버퍼 복사 피하기
- 수명이 긴 풀과 큰 개체
- 큰 개체 힙 조각화 줄이기
- 전체 GC 수행을 강제하는 환경
- 필요에 따라 대형 개체 힙 조각 모음
- 수집 발생 전에 수집 알림 받기
- 캐시를 위한 약한 참조 사용
- GC 성능 측정과 조사
- 요약

3장. JIT 컴파일
- JIT 컴파일의 이점
- JIT 컴파일의 비용
- JIT 컴파일의 최적화
- JIT와 시작 시간 줄이기
- 프로파일링으로 JITing 최적화
- NCEN 사용 시기
- JIT가 경쟁력이 없을 때
- 측정
- 요약

4장. 비동기 프로그래밍
- Tasks 사용
- 병렬 루프
- 차단 피하기
- I/O 차단을 피하기 위한 Tasks 사용
- Async와 Await
- 프로그램 구조에 관한 고찰
- 올바른 타이머 사용
- 바람직한 시작 스레드 풀 크기
- 스레드를 중단하지 않는다
- 스레드 우선순위를 변경하지 않는다
- 스레드 동기화와 잠금
- 측정
- 요약

5장. 일반 코딩 및 클래스 설계
- 클래스와 구조체
- 구조체에 대한 Equals 및 GetHashCode 오버라이드
- 가상 메서드 및 봉인 클래스
- 인터페이스 디스패치
- 박싱 피하기
- For와 Foreach
- 캐스팅
- 플랫폼 호출(P/Invoke)
- 대리자
- 예외
- Dynamic
- 코드 생성
- 전처리
- 측정
- 요약

6장. .NET 프레임워크 사용
- 호출하는 모든 API를 이해하자
- 동일한 작업을 하는 여러 API
- 컬렉션
- 문자열
- 정상적인 상황에서 예외 발생 API 회피하기
- 대형 개체 힙에서 할당한 API 회피하기
- 느슨한 초기화 사용
- 열거의 높은 비용
- 추적 시간
- 정규 표현식
- LINQ
- 파일 읽기
- HTTP 설정 및 네트워크 통신 최적화
- 리플렉션
- 측정
- 요약

7장. 성능 카운터
- 존재하는 카운터 사용
- 사용자 정의 카운터 생성
- 요약

8장. EWT 이벤트
- 이벤트 정의
- PerfView에서 사용자 정의 이벤트 사용
- 사용자 정의 ETW 이벤트 수신자 생성
- EventSource 데이터 상세 구하기
- 사용자 정의 PerfView 분석 확장
- 요약

9장. Windows Phone
- 도구
- 가비지 수집 및 메모리
- JIT
- 비동기 프로그래밍과 메모리 모델
- 기타 고려 사항
- 요약

10장. 코드 안정성
- OS와 API와 하드웨어 기본 이해하기
- 코드의 특정 영역에서 API 사용 제한하기
- 중앙 집중화 및 성능에 민감한 추상화와 어려운 코드
- 비관리 또는 안전하지 않은 코드 격리
- 입증 전까지 성능에 대한 코드 무결성 유지
- 요약

11장. 성능을 고민하는 팀 꾸리기
- 중요한 성능 영역 이해
- 효과적인 테스트
- 성능 인프라 및 자동화
- 숫자만을 신뢰하자
- 효과적인 코드 리뷰
- 교육
- 요약













+ Recent posts