|
|
이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
김진현
가입: 2005년 9월 20일 올린 글: 91 위치: SNUCSE OPT. lab.
|
올려짐: 2005년11월8일 22:16 주제: 5-3 에서 gc는 어디서 도나요? |
|
|
gc 가 스택머신 밖에서 돈다고 가정해도 괜찮겠습니까?
gc를 구현할 때 추가적인 메모리(스택머신 밖의 메모리)가 필요할 것 같습니다.
살릴(collect 하지 않을) 메모리를 첵크하거나, 아니면 이들을 모으거나 하면서요.
완전히 스택머신 밖에서 돈다면 gc 구현은 조금 쉬워집니다.
메모리를 돌아다니면서 살릴 메모리들을 모으고, 이를 리턴하면 되니까요.
우리가 수업시간에 배운, 그래프 모델에서 edge 의 방향을 바꾸는 방법은,
이런 추가적인 메모리의 양을 최소화 할 방법이었고요.
어느 쪽으로 구현하면 좋겠냐, 하는 질문의 답은 메모리를 적게 쓰는 쪽으로 해라, 일 것 같은데요,
이 경우에도 우리가 추가적으로 상수만큼의 메모리를 더 쓸 수 있다고 가정해도 괜찮은가요?
아니면, 이 상수만큼의 메모리를 2^11 에서 미리 빼고 생각해야 하나요? _________________ The kingdom of heaven has been forcefully advancing, and forceful men lay hold of it. |
|
위로 |
|
|
김진현
가입: 2005년 9월 20일 올린 글: 91 위치: SNUCSE OPT. lab.
|
올려짐: 2005년11월8일 23:00 주제: |
|
|
위의 질문은 주어진 Sm5 의 구현을 모르고 한 질문이었습니다.
지금 보니까 location 의 실체는 int 였네요 메모리는 list 고.
여기서 문제가 발생하는데-
gc 의 주 목표는 물론 메모리 재활용이고,
부 목표는 10ms 에 돌리기 였습니다.
수업 시간에 배웠던 내용을 다시 살펴보니, 어차피 2^11 정도의 메모리는 추가로 필요한 듯 합니다.
왜냐하면 collect 여부를 체크할 방법이 있어야 하니까요.
여기에 2^11 정도의 메모리를 또 쓰면 gc 까 빨라지도록 만들 수 있을 듯 합니다.
갈등이 생기는데,
1. 메모리를 좀 더 써서 빠른 gc를 만든다.
2. 사실 2^11 은 별로 큰 값이 아니니 메모리를 아끼면서 gc를 만든다. 그래도 gc는 그렇게 느리진 않을거다.
3. 사실 주어진 Sm5 모듈에서 사용하는 list 는 비효율적이므로 이를 적절한 자료구조로 뜯어고친다. 한참 뜯어고친 후, 메모리도 덜 쓰고, 빠르기까지 한 gc를 얻는다.
의 세 가지 중 하나를 택해야 할 것 같습니다.
물론 3이 정답일 것 같은데.. 시간도 없고 해서 1번으로 하려 하는데 괜찮을까요?
-_-
마감을 한 시간 남겨놓고 무슨 질문을 올리고 있는건지 저도 참 민망하네요 _________________ The kingdom of heaven has been forcefully advancing, and forceful men lay hold of it. |
|
위로 |
|
|
김진현
가입: 2005년 9월 20일 올린 글: 91 위치: SNUCSE OPT. lab.
|
올려짐: 2005년11월9일 0:04 주제: |
|
|
시간 내에 짜려다가 결국
인용: | 1. 메모리를 좀 더 써서 빠른 gc를 만든다. |
를 택해 버렸네요 Orz _________________ The kingdom of heaven has been forcefully advancing, and forceful men lay hold of it. |
|
위로 |
|
|
|
|
새로운 주제를 올릴 수 없습니다 답글을 올릴 수 없습니다 주제를 수정할 수 없습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group Translated by kss & drssay
|