
Drools 6.0에서는 지금까지의 ReteOO 대신 Phreak ( Lazy Matching)라는 새로운 룰 엔진 알고리즘이 도입되었다. 하지만 기존의 RetoOO도 선택적으로 사용할 수 있으며 사용 방법 또한 이전과 동일하다. Phreak 의 가능 큰 차이점은 효율적으로 멀티코어를 사용하여 성능에 보다 최적화된것이다. 또한 Rete와 비교하였을때 룰의 복잡성이 증가하면 RETE는 성능이 떨어지지만 ,Phreak는 큰 영향을 받지 않는다.
- Which rule engine algorithm is faster: ReteOO or Phreak?Which rule engine algorithm is faster: ReteOO or Phreak? – http://blog.athico.com/2014/01/which-rule-engine-algorithm-is-faster.html
Phreak 와 ReteOO의 성능 테스트에서 Phreak 가 Rete 에 비해 3개의 테스트에서는 20% 빠르고 하나의 테스트에서는 4% 가 느린 결과가 나왔다.
위의 기사 내용 테스트 결과는 다음과 같다.
- Course scheduling: Phreak is 20% faster than ReteOO
- Exam scheduling: Phreak is 21% faster than ReteOO
- Hospital bed planning: Phreak is 4% slower than ReteOO (*)
- Nurse rostering: Phreak is 20% faster than ReteOO
(*) but Phreak scales better and therefore is faster than ReteOO on the bigger datasets.
해당 내용은 아래의 URL 에서 참조한다.
기사에 따르면 결론적으로는
“Phreak 는 ReteOO보다 빠르고 확장성이 높다. Phreak 를 사용하면 보다 나은 결과를 얻을 수 있을 것이다.”
References
아래의 URL 들은 JBoss EAP6 에서 지원하는 설치 플랫폼에 대한 상세 내용이다.
영문 페이지가 최신 정보이기 때문에 영문을 기준으로 지원 환경을 확인한다.
- Phreak 성능을 테스트해보기 위한 예제들이 Github 에서 다운로드 받을 수 있다. – https://github.com/winklerm/phreak-examples
- Drools 6 Performance with the PHREAK Algorithm by Mark Proctor – http://blog.athico.com/2014/02/drools-6-performance-with-phreak.html
![]() |
거침없이 배우는 JBoss – ![]() 전준식 엮음/지&선(지앤선) |