lock-free 와 최적화
전산
2009/09/11 19:34
나는 lock-free 를 사용하지 않는다. 성능이득은 거의 미미한데 비해 투자비용이 너무 과다하다고 생각하기 때문이다. lock-free 같은 하드코어 튜닝 기법 관련해서는 Eric S. Raymond 본좌의 이야기를 경청할 필요가 있겠다.
We can get mathematically specific about this. It is almost never worth doing optimizations that reduce resource use by merely a constant factor; it's smarter to concentrate effort on cases in which you can reduce average-case running time or space use from O(n2) to O(n) or O(n log n),[112] or similarly reduce from a higher order. Linear performance gains tend to be rapidly swamped by Moore's Law.[113]
시간복잡도를 변화시키는 최적화라면 모를까, 선형적인 성능향상은 쓸데없는 짓이며 무어의 법칙앞에 무력할 뿐이라는 얘기인데 나는 저 의견에 동의한다. 링크 따라 가보면 그런짓 할시간에 딴걸 더 만들라고 충고하고 있다. Eric S. Raymond 스스로가 개발자 이므로 피가 되고 살이 되는 이야기를 저렇게 명쾌하게 해줄 수 있는것 같다.
사실 최근에는 무어의 법칙이 한계에 다다라서, 코어를 좀 더 단순하게, 그리고 많이 박는쪽으로 나가고 있다 보니 저 이야기가 진리만은 아니다. 하지만 그렇다 해도 게임에서의 lock-free 는 성능이득이 너무 작다. 내가 커널이나 디바이스 드라이버를 만들거나 혹은 진짜 시간이 남아돌지 않는 이상, lock-free 를 쓰는 일은 없을 것 같다.
트랙백 주소 :: http://testors.net/tt/trackback/1213
-
lock-free 회의론
Tracked from flexible gameserver 2009/10/02 06:03 삭제저도 이전에 lock-free에 대해 관심이 많이 생겨서 이것 저것 많이 알아보고 구현도 해본적이 있습니다만 현재는 회의적인 입장입니다. 이유는 2가지 입니다. 사용하는데 제약이 너무 많음들인 노력에 비해 향상되는 성능이 크지 않음제약이 너무 많음 lock-free 알고리즘의 하나인 SpinBuffer의 경우 두가지 제약이 있습니다. 하나는 소비자 스레드와 생산자 스레드가 각각 하나씩이어야 한다는 것이고 다른 하나는 두 스레드가 블럭되지 않...







Textcube 1.8.2 : Secondary dominant