|
어떤 데이터길래 1초마다 80Byte~250Byte씩 120~240개가 왔다갔다 거릴까요... -_-a 제가 생각하기로는 제일 좋은 방법은, 이 데이터의 크기를 어떠한 방법으로든 줄이는 방법 같습니다. 80Byte 이하로 도저히 줄어들 수 없으면, 자체적으로 압축 루틴을 만드셔서, 전송 데이터를 줄이는 방법이 있겠지요.
압축 루틴이라고 해도, 연속된 문자를 치환한다던가, 사주 사용되는 2Byte 이상의 문자를 치환한다는 등의 간단한 루틴입니다. 루틴이 복잡해지면, 압축을 푸는데 시간이 더 오래 걸리겠죠.
또한, 여러개의 소켓에서 데이터를 받는 쓰레드와 파일에 저장시키는 쓰레드를 나누어 주시는 것이 좋습니다. 쓰레드에서는 10초면 10초 정도로, 받았던 데이터를 모아서 한꺼번에 DB에 쓰는 역할을 하겠지요. DB서버가 따로 있다면, 더더욱 빨라지겠구요.
그리고, 직접 파일로 저장하시든, DB를 이용하시든, 파일이나 DB를 오픈하실때, 핸들을 프로그램 처음에서 열고, 계속 가지고 있어야 합니다. 예를들어, 파일을 연다고 하면, fopen, fclose를 할때마다 계속 하면 안되겠지요. 핸들을 전역변수로 가지고 있고, 이 핸들에 데이터만을 쓰는 그런 역할이 되어야 합니다.
다른점은 글쎄요.. 보통 차이가 나는 부분만 적어본거라서.. 긁적긁적...
혼불 님이 쓰신 글 :
: 80byte 크기의 데이터(구조체로 정의된...)를 1초마다 약 120개~ 최대 240개까지를 받을려고 하는데요....
:
: 문제는 20여개 정도만 올려도 프로세서의 모든 처리가 데이터를 받아서 DB에 저장하는 데로만 집중이 되어...
:
: 다른 작업을 전혀 할수가 없게 됩니다....
:
: 지금은 일단 80byte의 크기지만, 후에는 약 250byte크기의 데이터를 1초마다 최대 240개까지 받아서 DB에 저장을 하고.
:
: 저장된 데이터를 표현해야하는데 이렇게 많이 올라오는 데이터를 처리하는 좋은 방법이 없을까요?
:
: 참고로 이렇게 올라오는 데이터는 약 1개월에서 3개월동안 지속적으로 올라오게 됩니다....
:
: 데이터의 100%신뢰성있게 받을수가 있어야 하구요....
:
: 그럼 고수님의 조언을 기다리겠습니다....
:
|