솔라리스 시니어 엔지니어인 Ricky의 글입니다.
몇가지 사례를 통한 유용한 Dtrace 스크립트와 어떻게 해석했는 지 에 대한 과정이 있습니다.
특이한 것은, 매우 일찍이 멀티코어/하드웨어 스레드 개념을 발표한 썬 이후로 하드웨어 멀티 스레드개념이 보편화 되어 가고 있는 시점에서 보면, 멀티 스레드 상에서 어떤 코딩이 멀티 코어 시스템을 잘 활용할 수 있는 지, 어떤 코딩이 시스템에 오버헤드를 많이 주는 지등이 점점 명료해지고 있습니다.
아래의 사례를 기준으로 본다면, memset을 쓰는 것보다 각각의 byte에 0으로 초기화하는 것이 빠르고, condition variable 사용시에는 broadcast보다 condition signal을 사용하는 것이 스레드가 많아질 수록 생기는 오버헤드를 줄여준다는 것을 dtrace로 보여주고 있습니다. 또한 스레드가 많은 경우에는 메모리 할당시 슬라브 혹은 멀티스레드 전용 메모리 할당 기법을 쓰는 것이 매우 효율적이라는 것도 보여주고 있습니다.
애플리케이션 개발자들에게 많은 것을 시사하는 것이라고 할 수 있습니다.
Tutorial: DTrace by Example
몇가지 사례를 통한 유용한 Dtrace 스크립트와 어떻게 해석했는 지 에 대한 과정이 있습니다.
특이한 것은, 매우 일찍이 멀티코어/하드웨어 스레드 개념을 발표한 썬 이후로 하드웨어 멀티 스레드개념이 보편화 되어 가고 있는 시점에서 보면, 멀티 스레드 상에서 어떤 코딩이 멀티 코어 시스템을 잘 활용할 수 있는 지, 어떤 코딩이 시스템에 오버헤드를 많이 주는 지등이 점점 명료해지고 있습니다.
아래의 사례를 기준으로 본다면, memset을 쓰는 것보다 각각의 byte에 0으로 초기화하는 것이 빠르고, condition variable 사용시에는 broadcast보다 condition signal을 사용하는 것이 스레드가 많아질 수록 생기는 오버헤드를 줄여준다는 것을 dtrace로 보여주고 있습니다. 또한 스레드가 많은 경우에는 메모리 할당시 슬라브 혹은 멀티스레드 전용 메모리 할당 기법을 쓰는 것이 매우 효율적이라는 것도 보여주고 있습니다.
애플리케이션 개발자들에게 많은 것을 시사하는 것이라고 할 수 있습니다.
Tutorial: DTrace by Example
댓글 없음:
댓글 쓰기