Public 131

libevent 사용법

현재 프로젝트는 여러 장비에 대한 정보를 저장하는 대규모 서버다. 대량이라고 해봐야 최소 5000TPS, 목표는 50000TPS 정도이긴 하다. 어쨌든 대량의 통신을 처리하기 위해서는 대량의 connection을 처리하는 방법이 필요하며, 이런 라이브러리에 대한 탐색을 해본 결과, 직접적으로 epoll 같은 걸 사용하거나, libevent와 같은 라이브러리를 사용하는 방법이 존재하였다. 다른 방법을 사용할 수도 있으나 어쨌든 앞으로도 많이 사용해야 할 일이 있어서 안정적인 라이브러리를 선택하기로 하였으며, 이에 적당한 것이 libevent로 보였다. 근거가 있어야 하지만, 어쨌든 전문가의 추천이 있었으므로 일단 libevent를 사용하기로 하였다. 사용법 라이브러리를 초기화하기 위해서는 event_bas..

Public/tip & tech 2011.06.01

libevent 사용 예

* 메인 홈페이지 : http://www.monkey.org/~provos/libevent/ kqueue, /dev/epoll과 같은 유명한 multiplexer 장치들을 캡슐화한 C 라이브러리. 상당히 안정적. 소스도 작다. 1.0c 릴리스. man 페이지 : http://monkey.org/~provos/libevent/event3.html 아래 설명은 man 페이지를 정말로 많이 참조한다음 제가 좀 고쳐본 것입니다. Contents 1 설치법 2 필요한 헤더 include 3 설명 [edit] 1 설치법 # 이유는 모르겠지만 mingw에서 빌드가 자꾸 실패한다. 다음과 같이 autotool 기반 빌드를 실행하면 된다. 기본적으로 /usr/local/include, /usr/local/lib에 설치되..

Public/tip & tech 2011.06.01

libevent 및 libev로 네트워크 성능 향상

다중 UNIX 네트워크 연결 관리 Martin Brown, Freelance Writer, Author Martin Brown has been a professional writer for more than seven years. He is the author of numerous books and articles across a range of topics. His expertise spans myriad development languages and platforms -- Perl, Python, Java™, JavaScript, Basic, Pascal, Modula-2, C, C++, Rebol, Gawk, Shellscript, Windows®, Solaris, Linux, BeOS, Mac O..

Public/tip & tech 2011.06.01

extern 과 static 선언의 차이

C에서 함수는 중첩선언이 허용되지 않고 원칙적으로 함수의 기억 클래스는 static 또는 extern으로 주어진다. static 함수는 정의된 파일에서만 가시적이고, extern 함수는 프로그램을 구성하는 모든 파일에서 가시적이다. 함수의 디폴트 클래스는 extern이기 때문에 static 일 경우에만 static으로 서술한다. static 함수는 원시프로그램 파일 안에서만 참조될 수 있으므로 비공개 함수로 사용될 수 있다. 즉, 다른 프로그램 파일에 같은 이름의 함수가 작성될 수 있음을 의미한다. extern 함수는 모든 프로그램 파일로부터 호출될 수 있다. static add(int x, int y) { return(x+y); } -- 이상 http://pllab.kangwon.ac.kr/lectur..

Public/tip & tech 2011.05.31

Thread 취소와 종료 (자주 보는 쓰레드 사용법)

JOINC.co.kr Thread 취소와 종료 Date: 2004/02/15 Topic: 시스템 프로그램 윤상배: dreamyun@yahoo.co.kr 1절. 소개 쓰레드에 대해서 학습을 해본 적이 있다면 Thread 취소와 종료에 대한 내용은 뻔한 것 아니냐라고 생각할 수 있을 것이다. 하지만 이 문서를 읽어 보면 왜 별도의 문서를 만들어서 종료와 취소에 대해서 다루었는지 이해하게 될 것이다. 2절. Thread 취소(cancellation)와 종료 쓰레드는 제어 가능한 객체로 필요에 따라 생성시킬 수 있듯이 필요에 따라서 중단시킬 수도 있다. 이 쓰레드 중단이라는 것이 매우 단순한 행위라고 생각되지만 생각처럼 그렇게 단순한 행위가 아니다. 멀티 쓰레드 프로그램이라면 쓰레드 간 동기화를 위해서 조건 변..

Public/tip & tech 2011.05.31

POSIX 쓰레드 - 메모리 공유에 필요한 간단하고 신속한 도구 (자주보는 쓰레드 사용법)

난이도 : 초급 Daniel Robbins, CEO, Gentoo Technologies, Inc. 2000 년 7 월 01 일 POSIX (Portable Operating System Interface) 쓰레드는 사용자의 코드 반응성 및 성능 향상에 필요한 방법이다. Daniel Robbins는 사용자의 코드에 쓰레드를 적용하는 방법을 제시한다. 감춰진 많은 세부사항을 다루기 때문에 이 글의 시리즈를 모두 읽은 후에는 스스로 멀티 쓰레드 프로그램(multithreaded programs)을 만들 수 있을 것이다. 재미있는 쓰레드 쓰레드의 올바른 사용법을 익히는 것은 훌륭한 프로그래머의 자격요건 중의 하나이다. 쓰레드는 프로세스와 비슷하다. 쓰레드는 프로세스와 같이 커널에 의하여 시간 분할(time-s..

Public/tip & tech 2011.05.31