상상력이 없는 인간이 아니라 상상력을 억압하는 인간을 못 참는다. 우리나라에서는 상상력을 기발한 재주 정도로 간주하려는 경향이 있다. 하지만 상상력은 정치의 문제다. 상상력이 작동하려면 자기검열이 작동하지 말아야 한다. 내면화된 기준들을 제거하지 않으면 상상력은 커가지 않는다. 결국 상상력은 기존 체제를 승인하느냐, 마느냐의 문제다. --김영하 from
씨네21 인터뷰
씨네21 인터뷰지금의 상황으로는, 루아는 실시간 프로그램들의 메인 루프로써 잘 맞는다고는 볼수 없다. 그 이유는 루아가 느려서가 아니다 - 사실 아마도 어떤 스크립트 언어보다도 빠른 가상머신을 가지고 있다. 문제는 '보이기만 하면 청소해버리는 garbage collection'에 있다. (이것은 할당되어있는 객체의 수에 비례하는 CPU 점유시간을 요구한다)
기존 garbage collection 시스템을 실시간 증가 시스템(real-time incremental system -
Real-Time Non-Copying Garbage Collection이란 논문참조)으로 교체하는 것도 쓸만한 방법이 될 수도 있다. 그럭저럭 아직은 실시간 프로그램내에서 루아를 사용하는 몇가지 좋은 방법들이 있다.
Real-Time Non-Copying Garbage Collection이란 논문참조)으로 교체하는 것도 쓸만한 방법이 될 수도 있다. 그럭저럭 아직은 실시간 프로그램내에서 루아를 사용하는 몇가지 좋은 방법들이 있다.
- 초기화때에만 루아를 사용하라. C 구조체를 초기화 하기위해서 루아를 사용해라. 그리고 닫은 후 루아 context의 사용을 하지 않는다.
- 메인 루프내에서 루아를 사용한다. 그러나 객체를 메모리 할당하진 말아라. 주의깊게 프로그래밍을 한다면, 매인 루프에서 객체 할당을 제거하는 것이 가능하다. (이것은 garbage collector가 동작할 필요가 없게 만든다)
- 할당된 객체의 양을 작게 유지해라. 그리고 매인 루프의 매 반복주기가 끝날때마다 garbage collector를 동작시켜라. 적은 수의 객체에서는 이것은 납득할만한 일이 될 수 있다. 이 수에는 표준라이브러리가 포함되어있다는 것에 주의해라. 그러므로 사용되지 않는 함수는 제거하는 것이 좋다.








