IBM 디벨롭터 웍에 좋은 글이 있어서 링크를...
글이 두개인데, 파트1은 한글, 파트2는 영어다.
제목은 "java.util.concurrent에 대해 모르고 있던 5가지 사항"

링크를 보다보니 다른 글도 있을 것 같아서 뒤져보니 다음과 같은 글들이 있다. ^^;

Java Collections API에 대해 모르고 있던 5가지 사항, Part 1
Java Collections API에 대해 모르고 있던 5가지 사항, Part 2

그 밖에 아직 번역안된 영어글들
5 things you didn't know about ... JARs

5 things you didn't know about ... Java performance monitoring, Part 1
(요 내용은 didn't know는 아닌듯 ㅋㅋ. 특히나 내책을 본 사람들에게는 ㅎㅎㅎ)
아직 8번째 글은 안썼나부다.
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
OpenJDK에 대해서 들어본 개발자도 있겠지만,
처음 들어본 자바 개발자도 있을 것이다.


이게 뭔지 그나마 자세히 번역해 놓은 블로그 : http://thebasis.tistory.com/62

문제는 정말 써도 되는가이다. 

일단~~~ BMT 함 해 보고...
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 2
업무상 필요해서,
자바를 이용해서 PDF 파일을 만드는 라이브러리를 찾아 보았다.

그 중 가장 많이 쓰이고, 적당한 라이브러리로 iText를 찾았고,
해당 라이브러리는 주기적으로 update 되는 것으로 보인다.

iText 홈 : http://www.lowagie.com/iText

한글로 설명 되어 있는 문서 : http://www.ibm.com/developerworks/kr/library/os-javapdf/index.html

iText in action 책의 sample sources : http://www.1t3xt.info/examples/itext-in-action.php


가장 좋은 방법은 한글 문서를 본 후 iText in action 책에 있는 샘플 소스를 참조하는 방법이다.

한글이 깨지는 문제가 있다고 하는데,
그 내용은 구글에서 "iText 한글"로 찾으면 많은 블로그 링크를 찾을 수 있을 것이다.
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
http://developers.sun.com/learning/javaoneonline/j1online.jsp?track=javase&yr=2009

Java One 2009 자료들이 떴다.
이 자료들을 보려면 SDN 계정이 있어야만 한다.
(대부분 아시겠지만, 이 계정은 무료다. ^^)

지난 몇년간 성능테스트만 하고,
튜닝 업무는 주가 아닌 부 작업이 되었을 때 자료들을 보는 것과
지금 튜닝 업무가 주요 작업인 지금 자료들을 보는 것은 천지차이다.

역시 어떤 자료던지,
자기한테 필요가 있어야만 처다보게 되고,
머리에 쏙쏙 들어온다는 거~~~.

그나 저나 팀장님이 도움이 될꺼 같냐고 물어봤을때,
강력하게 이야기할 걸 그랬다.

내년엔 경기도 좋아지고,
팀도 계속 남아있고,
Java One 2010도 꼭 해서,
한번 참석해보고 싶당...
(회삿돈으로... ㅋㅋㅋ)
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
오늘 팀장님께서 복사한 문서를 한번 읽어 보라고 주셨다.
9개의 자바 성능 팁에 대해서 아~주 간단하게 정리되어 있는 문서다. (2페이지에 걸친...)

그 장의 첫번째 구문에는 Michael A. Jackson 이라는 할아버지가 쓴 글귀가 있다.

The First Rule of Optimization : Don't do it
The Second Rule of Optimization (for experts only) : Don't do it yet.

이 문서가 언제 쓴 문서인지는 모르겠지만.... 이 글귀는 약간 이해는 안된다. ^^;

Tip #1 : Object creation is bad
Tip #2 : static is good  ==> I don't think so 다.
Tip #3 : Table switch good, lookup switch bad
Tip #4 : Small methods are good methods
Tip #5 : Exceptions are exceptional
Tip #6 : Use decorator patterns with care
Tip #7 : instanceof is faster on classes
Tip #8 : Use synchronized minimally
Tip #9 : Beware external libraries
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0

기본적으로 자바는 Process와 Thread로 구성되어 있다.

이게 뭔지는 Java 성능을 결정짓는 코딩 습관과 튜닝 이야기라는 책에 잘 나와 있고...


여하튼.. 어떤 Thread가 뭔 짓을 하고 있는지를 보려면 Thread dump를 보면 된다.

자바는 기본적으로 Thread dump를 제공하기 위해서 jstack이라는 명령어(프로그램)을 제공하며 자세한 설명이 필요한 분은 아래의 설명을 보기 바란다.

http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jstack.html

http://java.sun.com/javase/6/docs/technotes/tools/share/jstack.html

 

만약 JDK 버전이 5.0이면

Jstack pid

JDK 버전이 6.0 이면

jstack -l pid

명령을 수행하면 된다.


만약 솔라리스나 리눅스에서 이 명령으로 수행이 안되면

jstack -F pid

로 수행하면된다.


여기서 pid 는 프로세스의 id다.

만약 jstack이 수행하는데 너무 오래 걸리고, 서버에 부하가 된다면 kill -3으로 쓰레드 덤프를 뜨는 것도 도움이 된다.


분석하는 방법은 쉽지 않지만 다음과 같은 툴들이 있다.
TDA라는 툴
https://tda.dev.java.net/

IBM의 JCA라는 툴

http://www.alphaworks.ibm.com/tech/jca



크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
http://performance.netbeans.org/

근데 이 글들은 NetBeans를 보다 빨리 사용하기 위한 설명들인감?
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
http://dlc.sun.com/pdf/819-3681/819-3681.pdf

문서의 제목은 Sun Java SystemApplication Server 9.1 PerformanceTuning Guide라고 되어 있다.

하지만, 실제 내용은 특정 Application 서버에 한정된 내용이 아닌 범용적이고, 기본적인 이야기가 많이 정리되어 있다.

세부적인 내용은 아니더라도, 제목만이라도 읽어 놓으면 많은 도움이 될 듯 하다.

바로 다운로드 받기 귀찮은 분들은 아래의 내용을 펼쳐서 제목만이라도 읽어보기 바란다.

목차보기

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
kenu님 미투데이에 놀러갔다가 ehcache 를 발견했다.

간단히 사용법을 정리한 블로그는 영어지만,
http://blog.cherouvim.com/caching-pages-using-ehcache


ehcache는 홈페이지에서 다운로드 가능하다.
http://ehcache.sourceforge.net 

왜 페이지 캐시가 필요한지는 대부분 아시겠지만,
예를 들어서 간단하게 말씀드리면...
온라인 쇼핑몰에서 대분류, 중분류, 소분류로 상품의 목록이 나오고
해당 상품의 개수가 나와있다고 가정해보자.
만약 이런 페이지의 캐시를 지정하지 않았다면, 페이지를 호출할 때마다 해당 카테고리의 상품 개수를 가져오는 쿼리가 계속 수행될 것이다.

그런데 캐시를 사용한다면???
거의 HTML을 읽어오는 속도로 메모리에서 데이터를 읽어 올 수 있으므로,
해당 화면이 엄청나게 자주 불리는 초기화면이거나 include되는 화면이라면 WAS 와 DB 사용량이 현저하게 줄어들 수 있다.
추가로 I/O 도 줄어들 수 있을 것이다.
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
http://www.j2eestudy.co.kr/lecture/lecture_read.jsp?table=j2ee&db=lecture0201_1&id=24

금일 세미나 수강생중 한분이 쓰레드 덤프를 어떻게 분석하는지에 대한 질문을 하셔서,

관련 자료를 찾다가 가장 적절한 내용이기에 링크를 정리해 둔다.

조대협님이 정리하신 내용인데,
정말 상세하고 잘 되어 있다.

근데...

개발자 분들은 직접 분석하려고 하는 것 보다는,
WAS 엔지니어나 서버 엔지니어 분들께 분석을 요청 드리는 것이
가장 빠르고, 현명하고, 간편하고, 머리 안아픈 방법이라는 것을 명심해 주기 바란다.
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0
http://www.ibm.com/developerworks/kr/library/au-javaonaix_memory.html

AIX 서버 (IBM JVM을 사용하는 서버)에서 자바 관련 문제가 발생되었을때 해결방안이 정리되어 있다.

그중 가장 마음에 드는 구절은 다음 부분이다. ^^;

메모리 문제는 매우 복잡하고, 해결하기도 매우 어려우며, 진단에도 많은 시간이 요구됩니다. 메모리 관련 문제들은 다음과 같은 이유로 인해 해결하기 매우 어려운 작업입니다.

  • 부적절하게 튜닝 된 OS나 JVM
  • 부적절하게 객체를 관리하는 자바 애플리케이션
  • 부적절하게 할당된 큰 객체 또는 중첩 객체들
  • 단편화(Fragmentation)
  • JNI/네이티브 코드에서 올바르게 릴리스 되지 못한 메모리
  • JVM 메모리 할당과 사용에 대한 이해의 부족

ㅋㅋㅋ

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0

http://www.jennifersoft.com/46/forum/page/3/show/1130.html

메모리 릭을 발생시키는 원인은 무척 많지만,
Oracle의 OCI를 사용할때 C Heap이 계속 누적되어 OutOfMemoryError가 발생할 수 있다고 한다.

데이터 건수가 적을때는 조금씩 쌓여도 간에 기별도 안가겠지만,
화면에서 제대로 처리하지 못하고 3만, 10만건을 조회하다가 오류가 발생하면 이러한 문제가 발생할 수도 있다.


 

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by tuning-java Trackback 0 : Comment 0