2012-01-18 3 views
1

Java EE 프로젝트에서 @Asynchronous를 사용했는지 궁금했습니다.EJB 3.1 @Asynchronous really slow

같은 코드이지만 "sync"메서드에서 EJB 내의 비동기 메서드 호출을 비교했습니다. 비동기는 10 분이 걸리지 만 "동기화"방법은 23 초가 걸린다 !!

비동기 메서드는 미래를 반환합니다.

이런 종류의 성능 병목 현상이 발생 했습니까?

답변

0

아니요, 절대로 경험하지 못했습니다. 우리는 @Asynchronous 메소드를 수 많은 톤을 사용하며, 이러한 메소드 내의 코드 실행 시간은 동기 호출과 동일합니다.

@Asynchronous는 자체 트랜잭션에서 실행되기 때문에 어떻게 든 영향을받을 수 있습니다. 이것은 또한 영속성 컨텍스트가 사용되는 경우 그러한 메서드에 전파되지 않으며로드하기 전에 L1 캐시가 얼마나 뜨거운 지에 따라 백엔드에 추가 쿼리를 많이 수행해야 함을 의미합니다 .

또한 통화를 시작한 순간부터 미래가 결과를 반환하거나 메서드 자체 내에서 측정되는 10 분입니까?