사용자 도구

사이트 도구


kb:luaapigarbagecollection

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

kb:luaapigarbagecollection [2014/11/07 10:02] (현재)
줄 1: 줄 1:
 +====== LuaApi/​GarbageCollection ======
 +루아는 incremental mark-and-sweep 알고리즘을 이용한 가비지 컬렉션을 수행한다. 이 과정에 사용되는 변수에는 2가지가 있다. 하나는 garbage-collector pause 값, 나머지 하나는 garbage-collector step multiplier 값이다.
 +
 +Garbage-collector pause 값은 새로운 사이클을 시작하기 위해 메모리가 얼마나 커질 때까지 기다리는 가에 대한 값이다. 이 값이 2라면 사용하는 메모리가 현재의 2배가 되면 가비지 컬렉션을 시작하겠다는 말이다. 이 값이 1보다 작으면 당장 가비지 컬렉션 사이클을 시작한다.
 +
 +Garbage-collector step multiplier 값은 메모리 할당 속도와 가비지 컬렉션 속도와의 비율을 정한다. 잘 이해가 안 가는데, 어쨌든 이를 통해 가비지 컬렉션의 속도를 결정한다고 한다. 이 값이 1이라면 메모리 할당 속도와 가비지 컬렉션 속도가 일치한다는 말이며, 이 경우 가비지 컬렉션이 정상적으로 동작하지 않을 수도 있다. 기본값은 2인데, 이는 가비지 컬렉션이 메모리 할당에 비해 2배의 속도로 동작한다는 말이다.
 +
 +===== lua_gc =====
 +<code cpp>
 +int lua_gc (lua_State *L, int what, int data);
 +</​code>​
 +옛날 버전은 lua_getgccount,​ getgcthreshold,​ setgcthreshold 등의 함수를 사용했었는데,​ 언제부터인지 lua_gc 함수 하나로 통일되었다. 자세한 것은 [[http://​www.lua.org/​manual/​5.1/​manual.html#​lua_gc | 공식 매뉴얼]]을 참고...
 +
 +----
 +  * see also [[LuaApi]]
  
kb/luaapigarbagecollection.txt · 마지막으로 수정됨: 2014/11/07 10:02 (바깥 편집)