2012-04-29 2 views
1

OSGI 및 CDI를 사용하여 Glassfish 3.1.2에서 CDI 응용 프로그램을 개발하고 싶습니다. 그러나 CDI 응용 프로그램의 성능 저하는 무엇인지 알지 못합니다. 멀티 스레드 응용 프로그램에서 CDI를 사용할 수 있습니까? CDI를 사용하여 대용량 데이터 구조를 전달할 수 있습니까?Glassfish CDI의 성능

베스트가 CDI를 사용하기위한 성능 저하가 있지만 우리가 벌어지고 다른 모든 것들에 비해 무시할 글래스 피시에 배포 거의 모든 경우에

답변

1

소원. 코드의 CDI 부분이 응용 프로그램이 대부분의 시간을 보내는 곳이라는 것을 특별히 알거나 의심하지 않는 한 CDI 사용에 대한 두 번째 생각이 없습니다. 우리의 세계는 최적화가 완료되었음을 모두 알게되면 조기에 최적화가 이루어집니다. 문제가있을 때, 코드를 작성할 때가 아닙니다. 프로파일 링을 통해 최적화 할 지점을 찾은 다음 최적화 된 지점을 최적화합니다. CDI를 사용하여 절약 된 코딩 및 유지 시간은 필요성이 나타나면 다른 기술로 되돌아가는 데 소요되는 시간보다 거의 항상 중요합니다.

+0

감사합니다. 성능을 향상시키기 위해 miltithreads를 CDI와 함께 사용할 수 있습니까? – Aldo

+0

정확한 답변은 대소 문자가 구별됩니다. 그러나 예, CDI 아키텍처는 멀티 스레드 환경에 아무런 문제가 없습니다. 하지만 응용 프로그램에 대한 CDI 속도가 향상되면 응용 프로그램을 멀티 스레딩하면 답을 얻을 수 없습니다. (대부분의 시나리오에서이 경우 다중 스레드 부분은 컨테이너 인 glassfish에 의해 처리됩니다. 응용 프로그램에 따라 glassfish가 모든 다중 스레드를 처리하도록 권장합니다. 완전한 JavaEE 응용 프로그램이라면 강력히 제안합니다.) – esej

+1

내 메인 요점은 ... CDI의 성능에 대해 걱정하지 마십시오. 저의 견해를 바꾸려면 CDI에 많은 시간을 할애 할 수있는 응용 프로그램 (도메인)과 매우 다른 것을 지정해야합니다. – esej