비주얼노벨 강좌

원문: http://cafe.naver.com/luamadang/73

 

루아의 메모리 관리는 자동적으로 이루어 집니다.  이 말은 루아 프로그래머가 새로 생성되는 object 에 대한 메모리를 할당 하고 해제하는 것에 신경을 쓰지 않아도 된다는 말이죠.

 

루아는 garbage collector 라는 것을 돌려 메모리 관리를 자동으로 하도록 되어 있습니다.

이러한 일은 "from time to time" , 즉 때때로이죠.. 가끔 수행한다는 뜻으로 해석해도 될 듯 합니다.

 

자동으로 해제되는 메모리들은 루아에서 더이상 접근할 수 없는 메모리들을 말합니다. (no longer accessible from lua)

이러한 메모리들은 tables, userdata, functions, threads, strings, 등등 입니다.

 

루아의 garbage collector 방식은 "Mark and Sweep algorithm" 을 사용 합니다.

이 방식은 garbage collection 방식중 처음으로 개발된 방식으로 가장 많이 사용되는 방식중 하나 입니다.

 

이 방식에 대하여 설명은

http://www.brpreiss.com/books/opus5/html/page424.html 

를 참조하시기 바랍니다.

 

간단하게 설명하면,

mark and sweep algorithm 은 두 단계로 동작 합니다.

 

mark phase : 첫번째로는 모든 접근 가능한 객체들을 찾아서 mark 를 합니다. 이를 mark phase 라 합니다.


sweep phase : 두번째 단계로 garbage collection 알고리즘은 모든 힙 메모리를 스켄 합니다. 그리고 unmarked 즉 mark 가 되지 않은 메모리들을 수거 합니다. 두번째 단계를 sweep phase 라 합니다.

루아 시스템이 garbage collection 을 수행할 때는 루아 실행이 순간적으로 멈추게 됩니다.

그러므로 너무 자주 발생하면 속도에 영향을 줄 수 있으며, 그 반대일 경우에는 메모리 사용량이 늘어날 것 입니다.

속도 또는 메모리에 문제가 있을 경우 , 이를 적정하게 맞추어 주어야 합니다.

 

루아는 garbage-collection 의 수행을 주기적으로 합니다. 이 주기를 제어하기 위해서 두가지의 값을 사용합니다.

    1. 동적 할당 메모리 카운트 -- 동적으로 할당된 메모리가 얼마인지를 카운트 한다.
    2. threshold  -- 문턱값, 즉 garbage - collection 이 수행되어지는 경계값.

동적 할당 메모리의 크기가 threshold 문턱값에 다다를때 루아는 garbage collection을 수행 합니다. 이때 죽은 메모리를 회수하게 되는 것 입니다.

 


List of Articles
분류 제목 글쓴이 날짜 조회 수
Ren'Py 렌파이 관련 유용한 링크 모음 3 file 습작 2012.12.02 17640
Nekonovel 네코노벨 관련 유용한 링크 모음 1 file 습작 2012.11.19 11979
Vasilriot 바실리어트에서 지원하는 vr팩. 언팩이 가능할까? 하늘바라KSND 2013.05.11 2651
기타 제작툴 소개 : Novelty란 무엇인가? 4 file 습작 2013.05.09 4561
Vasilriot 바실리어트 사용할 때 조심해야 할 것 :: 글자수 제한(명령어 오류)(2013.05.15수정) file 하늘바라KSND 2013.05.09 2750
기타 제작툴 소개 : LiveMaker란 무엇인가? 4 file 습작 2013.05.09 8706
Vasilriot 장면 전환할 때 사용할 '장막효과'를 구현해보자. 하늘바라KSND 2013.05.09 2705
Vasilriot 노가다를 줄여주는 명령어, 인라인 사용하기. 2 하늘바라KSND 2013.02.18 2951
VNAP Vnap 제대로 게임 한 번 만들어 보자!(브이냅 기초) 4 file FNS키리토 2013.02.14 5106
VNAP Vnap 강좌 제 2 편! 작은하마 길들이기 (CG) 9 file FNS키리토 2013.01.28 5073
VNAP vnap으로 뭐든 해보자! 1 편! 15 file FNS키리토 2013.01.10 4188
Neko:기초 네코노벨 무작정 따라하기 - 2편 : 로고만들기 9 file 습작 2012.12.21 6147
Vasilriot 바실리어트 버튼 사용하기 file 하늘바라KSND 2012.12.21 3164
Neko:기초 네코노벨 무작정 따라하기 - 1편 : 둘러보기 2 file 습작 2012.12.08 12613
Vasilriot 바실리어트 스크립트 정리하기. file 하늘바라KSND 2012.11.10 3509
Neko:Lua 마인크래프트에서 루아언어를 써 Boa요! 2 철쭉 2012.07.21 4183
Neko:Lua Lua for Windows 1 루아마당 2010.08.08 5556
Neko:Lua LUA 란 무엇인가? 6 루아마당 2010.08.08 7229
Neko:Lua 루아의 메모리 관리 방식 루아마당 2010.08.08 5472
Neko:Lua 루아 스크립트를 1 무뇌인 2010.04.20 5924
Neko:Lua 비쥬얼 C++에 루아 연동시키기- file Saber 2010.01.02 7983
Neko:Lua 좀비서바이벌 1.11b 버전 Lua 스크립트 16 판져중위 2009.11.30 9285
Board Pagination Prev 1 2 3 Next
/ 3