#gdc12 #review Robustification through introspection and analysis tools
havok에서 사용하는 RTTI 코드 생성 자동화, script binding 정책, memory reporting 방법을 소개
developer taxes
It’s something you do, not because it actually benefits you specifically, but because it benefits the software landscape as a whole. - Raymond Chen
reflection
- build 과정에 자동으로 reflection 생성
- pre-build 스텝에
- 자동화를 해서 수동으로 reflection을 만들 때 문제점을 해결
- out-of-sync errors
- reflection data unit test도 수행
runtime introspection
slimmer script bindings
- wrapper와 native가 1:1 관계인 걸 fat bindings라 정의
- signature에 따라 trampoline을 생성해 실제 native와 바인딩
- memory cost가 줄어들고 multilanguage(lua, python, …)가 가능
- trampoline을 공유할 수 있기 때문
- 다만 indirection이 늘어 속도에서 불이익
memory reporting
- 수동으로 하지 않는다.
- type root부터 시작해 reflection을 사용해 메모리 사용량을 다 알아냄.
versioning
- 버전 간 패치를 일반화한 것에 주목.
- 그리고 metadata 비교로 자동으로 만들어 내는 것도 주목.
- 테스트하기가 더 쉽다.
see also
발표
- 발표자: Kennedy, Stephen (Havok)
- 발표자료: GDC Vault - Robustification Through Introspection and Analysis Tools (Avoidin…