| [ CnUnix ] in KIDS 글 쓴 이(By): parresia (누구게) 날 짜 (Date): 2002년 6월 11일 화요일 오후 11시 12분 14초 제 목(Title): Re: Unix프로그램을 NT로 포팅 2 소스 ->소스 수준의 단순 번역(?)은 잘 작동할 수 있을지 의문이 듭니다. 저같은 경우 네트웍이나 file관련 low-level IO가 들언가는 경우엔 의외로 양쪽 플랫폼의 퍼포먼스가 다르게 나타나는 경우가 많은것을 경험했었습니다. 쉬운 예로 저같은 경우 1초에 한 1000개의 60바이트 정도 되는 레코드를 소켓으로 받아 각각을 서로 다른 file에 써 넣는 작업을 하는 프로그램을 짰었는데요... 일단 NT에서는 open으로 연 file을 close해도 descriptor를 시스템이 반환해 재사용하는게 잘 안되더군요. Xeon을 4개 쓰는 NT machine에서는 한 500개 정도가 한계였습니다. 반대로 linux를 쓰는 펜티엄 2 시피유 1개짜리 머신에서는 별 무리 없이 잘 돌더군요. 네트웍에 연결해서 데이터를 받아 파일에 쓰는 경우에도 NT쪽에서는 중간중간 data를 못받고 넘어가서 record의 정보가 깨지는 경우를 많이 봤지만, linux에서는 동일한 소스로 훨씬 허름한 (CPU갯수나 메모리가 1/4정도 되는) 컴에서도 잘만 처리하더군요. 물론 제가 NT쪽 프로그래밍을 잘 몰라서 그럴수도 있지만, 거의 다음과 같은 수준의 프로그램이었습니다. main() { loop() } loop() { open socket while(true) { read 60 byte from socket open file write data to file close file } } |