CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): swhan (foo bar)
날 짜 (Date): 2002년 11월 21일 목요일 오후 03시 05분 36초
제 목(Title): Re: [Q]c 질문


같은 용량으로 일정하게 new free를 반복한다면 그럴법도 합니다.
약간의 계산은 들어가나 sbrk의 호출은 없을꺼고 malloc 알고리즘에 따라서는 
마지막에 되돌려진 공간을 다시 반환해주는 경우도 있을테니 오버헤드라고 
해봤자 수만번의 malloc계산과 list관리 정도일텐데 이건 큰 오버헤드가 안 될 
수 있을 것 같은데요.

생각난김에 아주 간단한 테스트를 해봤습니다.
10만번 malloc과 free를 반복하는 loop를 돌리고 코드 최적화는 하지 
않았습니다. loop안에는 오직 malloc/free만 있습니다.
malloc size :900*1000 byte  -> 약 7.0초 /10만번
malloc size :500*1000 byte  -> 약 5.6초 /10만번

P4 1.5GHz cygwin이고 time명령을 이용했습니다. user time 과 sys time은 
약간씩 변하지만 real time은 거의 일정하군요. 

7초의 시간.. 초당 1만건 근처의 malloc/free..
상황에 따라서 무시할 수 있는 시간이 될 수 있겠네요.

그런데.. 시뮬레이션 하는 상황에서 메모리를 수백KB정도만 이용하는 경우가 
얼마나 되나요? 전 그런건 안해봐서 -.-a

[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.