간만에 밤샘 작업

어제 시연 중에 장비가 죽었다고 한다. 메모리가 깨지니 뭐 어딘지 알수가 있나. 그 와중에 다른 버그가 발견되서 방금 하나 고치고 또 장비 죽기를 기다리는 중. 빨리 죽으면 30분여, 오래 걸리면 몇시간이 걸리니 일단 죽을때 까지 기다린다;

지금 죽는 장비는 내가 회사에서 처음으로 만든 장비이다. 생각했던 것 보다 너무 많은 기능이 들어갔고, 성능 문제로 코드가 깔끔하게 짜기 힘들어서 별별 희한한 코드가 다 들어가 있다. 지금 보니 좀 이상한 부분도 많이 보인다; 그 뒤로는 디자인 자체를 많이 개선 했기 때문에 좀더 심플한데, 처음에는 멀티 쓰레드 환경에서 죽는 것에 대해서 전혀 경험이 없었기에 뮤텍스 떡칠이 되었다. 한번에 수십개의 스트림을 동시에 실시간으로 처리 해야 하다 보니, 정말 어렵다. 디코더 수십개에 인코더 여러개, 그리고 화면 구성하는게 몇개를 33ms만에 처리하고 7개의 유기적인 쓰레드로 되어 있다. 뮤텍스도 잘못 걸면 지연이 커져서 제대로 돌지 않는다.  하하 처음 해보는 멀티쓰레드 장비에 온갖 헤비한 것들이 붙었으니 곳곳에 문제가 생겨서 정말 힘들었었던 기억이 난다. 지금 다시 만들면 훨씬 간단한 구조로 잘 만들텐데 아쉽다; 그렇다고 몇달간 테스트를 거치고 몇년째 잘 쓰고 있는 장비를 다 갈아 엎을수는 없는 일이고 ㅎㅎㅎ

by Lohengrin | 2009/07/02 02:04 | 트랙백 | 덧글(4)

트랙백 주소 : http://lohengrin.egloos.com/tb/1923986
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by 써니 at 2009/07/02 02:15
허거걱... 부디 잘 마치시길 바랍니다.
저도 지난 주까지 약간 비슷한 상황이었습니다만...
Commented by Lohengrin at 2009/07/03 10:40
어떻게 잘 마무리 하긴 했습니다.
Commented by 극악 at 2009/07/02 07:14
리팩토링 책의 서문을 읽는 느낌이군요;;
Commented by Lohengrin at 2009/07/03 10:40
하하 참 이론만으로 안 되는게 경험이 없어서 성능 안 나오는 부분이라든지 등에서 참 문제가 많았죠. 게다가 급하니깐 뭐 일단 돌아가는 코드를 짜게 되었던;

:         :

:

비공개 덧글

 

◀ 이전 페이지다음 페이지 ▶