본문 바로가기

반응형

전체 글

(926)

자바에서의 Object Pool 기법 Object Pool Control 기법은 JDBC Connection Pool 을 만들거나, TCP/IP Socket Pool을 만드는 등, 최근엔 많은 자바 개발자들이 즐겨 사용하는 기법 중의 하나 입니다. 특히 JDBC Connection Pool 이 소개 되면서, 너도 나도 직접 Connection Pool을 만드는 시도를 자연스럽게 하게 됩니다. 저 역시 그 중의 하나였고, Object Pooling 기법에 대해 너무 단순하고 쉽게 생각 했었습니다. 최근에야 저의 프로그래밍 기법에 엄청난 잘못이 있었다는 것을 하나은행과 한빛은행 인터넷뱅킹 프로젝트 튜닝작업을 하면서 깨달았습니다. 저와 같은 잘못을, 행여나 다른 분들이 똑같이 범하지 않았으면 하는 바램에서 저의 잘못을 아래 처럼 기술합니다. 아래..
자바 프로그램 성능 개선 방법(박재현씨의 글) 원글 : http://www.javaservice.net/~java/bbs/read.cgi?m=qna&b=discussion&c=r_p&n=1034535273&d=tb#1034535273 과거 C 언어가 어셈블러를 대체한 것은 결코 C 언어가 어셈블러보다 빠르기 때문이 아니다. 마찬가지 로 C++언어가 C 언어를 대체하고 있는 상황도 C++이 C보다 빨라서가 아니다. 실제 C++보다는 C가 C 보다는 어셈블러가 훨씬 빠르다. C와 C++이 확산된 배경에는 속도가 아니라 프로그램이 쉽고 이식성 이 좋기 때문이다. 마찬가지로 자바는 C++보다는 느리지만 “Write Once, Run Anywhere”로 대표 되는 이식성과 코드의 안전성 등 개발상의 많은 이점을 제공하면서 급속히 확산되고 있다. 이러한 과 정..
서버 만들때 읽어 볼 글 - 하나의 데이터는 나누어 들어 올 수 있다. > > {소켓 통신시 패킷의 제한이 있나요} > {양웅직(twist), twist@orgio.net} > > InputStream fromWapClient; > OutputStream toWapClient; > > > fromWapClient = new BufferedInputStream(sock.getInputStream()); > toWapClient = new BufferedOutputStream(sock.getOutputStream()); > > > byte[] buf1 = new byte[10000]; > 위처럼 버퍼를 잡아주고 > 파일의 끝까지 오는 것을 > int count; > while((count = fromWapClient.read(buf1)) != -1) > { > > num = n..
서버 만들때 읽어 볼 글 - PPC 기법 ( 폭주중 잠시만 기다려 주십시오 ) > > {쿼리문 실행이 오래걸릴 경우} > {손님(guest), lumb2000@hanmail.net} > > jdbc프로그램에서 쿼리문의 실행시간이 오래걸리면 어떻게 처리를 하는지 궁금합니다. > 제가 쓰는 쿼리문의 경우 여러 테이블을 조인해야만 원하는 데이타를 가져올 수 > 있습니다. 여러개의 테이블을 조인하기도 하고, 각 테이블에 데이타가 많아서 쿼리문의 > 결과를 얻는데 시간이 오래걸리더군요. > > 그런데 문제는 이렇게 오래 걸리는 동안 계속 pool을 잡고 있어서, 반환하기 전에 요청 > 이 들어오면 다시 pool이 잡혀서 Current in use의 개수가 계속 늘어만 갑니다. > 물론 어느정도 시간이 지나면 다시 반환되기는 하지만 많은 유저가 붙었을 때는 > 시스템이 제대로 동작하지 않습니..
서버 만들때 읽어 볼 글 - non-blocking I/O , Thread Pool 제목 : Re: chatting프로그램 가이드 글쓴이: 신형주(shin7688) 2002/10/11 02:58:47 조회수:141 줄수:88 자바 처음짜는 사람을 위한 chatting프로그램 가이드 네트웍은 모르더라도 OOP는 필요한것 같구요. Chat이란 사용자가 connection을 시작해서 이 세션이 끊어질때까지 문자를 주고 받는것을 의미 합니당. 서버 프로그램에서는 기초적으로 프로그램을 볼께요. 최고의 서버는 fault-tolerance, load-balancing, sessioning을 제공하는 솔루션이어야 하지만 처음에는 간단한 데이타 교환이 좋지요. 기초: 1.클라이언트가 구동하기전에 서버는 구동해야 하죠. 2.커넥션을 얻기 위해서 기다려야 되고 물론 port(당연 한대의 컴퓨터를 기준으로요..
TCP/IP Socket 프로그램 구현시 고려사항 http://www.javaservice.net/~java/bbs/read.cgi?m=devtip&b=javatip&c=r_p&n=1009171849 제목 : TCP/IP Socket 프로그램 구현시 고려사항 글쓴이: 이원영(javaservice) 2001/12/24 14:30:49 조회수:6479 줄수:96 TCP/IP Socket 프로그램 구현시 고려사항 CPU나 메모리와 같은 자원은 항상 한계점이 있기 마련입니다. 그 한계점에 도달했을 때, 어떻게 동작케 하도록 조정하겠느냐의 문제가 매우 중요합니다. 이러한 고민의 여부가 때론 프로그래머의 수준이 실무적인 경험이 있느냐 그렇지 않느냐의 차이로 나타납니다. TCP/IP Socket 프로그램을 짤때, 크게 수준에 따라 네가지 방법이 있습니다. 첫째, S..
쪽팅 클라이언트 - 자바 스크립트가 실행할 메소드는 public로 잡을것 자바 스크립트가 실행할 메소드는 public로 잡아야 함. http://mjava.net 188: //sleep 할 시간을 초기화,, 쪽지가 도착했을때, 쪽지를 보냈을때..실행.. 189: //javascript에서 호출함으로 반드시 public이어야 함.. 190: public void initTime() { 191: this.startTime = System.currentTimeMillis(); //시작시간을 현재시간으로 설정 192: this.dtime = this.checkNewMemoTime; //기본 checkNewMemoTime을 thread의 dtime(sleep)으로 설정 193: 194: thread.interrupt(); 195: }
쪽팅 클라이언트 - 스레드 실행 간격 0.2초 가능 스레드를 실행 시키는 간격이 0.2초 정도라면 거의 cpu를 소모 하지 않는다고 함. 대신 쪽지 클라이언트일때만 가능할 것임. ( 서버라면 순식간에 들어 오는 사람을 모두 처리해야 함으로 ) ( 채팅 클라이언트라도 빠른 속도를 위해서라면 ? 잘 모르겠음 ) http://mjava.net 114: public void run() { 115: System.out.println("webclient run"); 116: int ttime = 200; //thread sleep time; 117: int mtime = 0; //memo time; 118: int ctime = 0; //check time; 119: while(!isStop) { 120: try { 121: 122: // 0.2초단위로 쓰레드가 쓰..

반응형