Jdk(java) 7 - 5. invoke-dynamic
.
Posted by 김용환 '김용환'



최근에 내 블로그에서 소개한 Twitter가 JVM으로 간다는 소식을 작성하였는데, 관련해서 OSCON 2011 에서 관련 내용이 발표되었다. 


O'Reilly OSCON Java 2011, Raffi Krikorian, "Twitter: From Ruby on Rails to the JVM" 

동영상 :   http://goo.gl/Klj9v

발로 쓴 내용 : 처음에는 배경설명을 많이 한다.  IO가 어마하게 많았다. 프로젝트이름을 Gosai Kiji(꿩?)으로 결정했다. 서버 부하를 잘 처리하고, 여러 언어(특별히 Scala, java)에 대한 유연성이 있어야 했다. 

GC, runtime gc, deploy 이슈를 해결하기 위해서 많은 조사를 했다. 그리고, Finagle이라는 것을 만들었다.
http://twitter.github.com/finagle/
 
Scala, 자바 뿐 아니라 다른 JVM 언어에서 비동기 RPC 클라이언트/서버 모듈을 만들어지주는 라이브러리를 개발했다. 예쁜 코드이다. 

jvm 기반에 동작하는 많은 어플들을 개발하고 운영하고 있다. 

그렇다고 해서 java(jvm)을 사용하는 것이 트위터가 ruby를 썼다는 것을 실수였다는 것을 의미하는 것은 아니다. java는 많은 리소스를 가질 수 있다. 엄청난 트래픽에 대한 유연성을 가지고 있어서 쓴 것이다.

평 : 지난 번에 쓴 내용에서  크게 벗어나지 않았던 것 같다. 트위터의 발전을 기원하며~^^

 자료 : PPT가 없어서 유투브에서 발표 자료 캡쳐함
























 







Posted by 김용환 '김용환'

http://community.jboss.org/wiki/AS7StartupTimeShowdown

JBoss의 AS 서버가 가장 빨리 뜨는 하드웨어와 JVM 종류에 대해서 테스트한 내용을 공유한다.

jvm 옵션은 두가지였다.

Group A: -Xms64m -Xmx512m -XX:MaxPermSize=256m -client -Xverify:none -XX:+UseFastAccessorMethods -XX:+DisableExplicitGC -XX:+UseCompressedOops

Group B: -server -Xms128m -Xmx128m -XX:MaxPermSize=128m -Djava.net.preferIPv4Stack=true -XX:+UseFastAccessorMethods -XX:+TieredCompilation -Xverify:none


* 전체적인 표를 보면.  32bit jvm에 SSD 디스크쓰고, cpu가 좋으면 빨리 뜨는 것 같다.


여기서 재미있는 내용이 있다.
- integer 값이 작아서 startup속도는 64비트 jvm보다는 32비트 jvm이 빨랐다
- 64비트 jvm을 사용할 때는 -d32와 -XX:+UseCompressedOops를 사용하면 32비트 jvm만큼 속도가 나온다.

속도를 높일만한 jvm 플래그를 소개한다.
- -noverify 추가
-  -XX:+DisableExplicitGC 추가
- -client 변경

----

Posted by 김용환 '김용환'

jdk 6 버젼을 쓰고 있는데, 이 JIT가 hot spot compiler 가 아닌 tiered compiler 10 버젼이었다..

정확하게 잘 모르던 차에 정리차 레퍼런스를 남겨둔다. 시간만 많으면 정리하면 좋긴 한데.

 

 

http://www.cafeaulait.org/slides/nycjava/java7/40.html

http://www.theserverside.com/tt/knowledgecenter/knowledgecenter.tss?l=MetalMeetsJVM

http://blogs.sun.com/fatcatair/entry/tiered_compilation_issues

http://blogs.sun.com/fatcatair/entry/tiered_compilation_update

http://blogs.sun.com/fatcatair/entry/tiered_compilation_almost_live

http://www.javalobby.org/java/forums/t70546.html

http://blogs.azulsystems.com/cliff/2007/04/nonblocking_has.html

http://forums.java.net/jive/thread.jspa?threadID=33217&tstart=0

 

 

 

 

Posted by 김용환 '김용환'
TAG Java, jvm