2013-01-03 3 views
0

내 애플리케이션 속도를 높이기 위해 Infinispan을 조사 중입니다. 즉시 사용 가능한 구성은 SQL Server에 지속되는 것보다 훨씬 느립니다. Lucene 인덱싱 성능을 조정하기 위해 최대 절전 모드 검색 설정을 알고 있지만 리플렉션 제거를 시작하려고합니다. 나는 Hibernate 검색이 객체를 인덱싱을 위해 문서로 변환하는데 그것을 사용한다는 것을 알고있다. 문제는 그것을 피할 수있는 방법을 찾을 수 없다는 것입니다.리플렉션이없는 Infinispan 쿼리

+0

문제를 명확히 할 수 있습니까? 반사가 병 목이라고 생각하는 이유는 무엇입니까? 프로파일 링 했니? 반사를 피할 수있는 방법은 없습니다. 어떤 단계에서 엔티티는 오브젝트에서 인덱스 "세계"로 맵핑해야합니다. 심지어 Hibernate ORM을 사용할 때조차도 당신은 reflection을 피할 수 없다. – Hardy

+0

Reflection은 더 이상 성능 문제가 아니며 적어도 Hibernate와 Hibernate Search에서 사용되는 방법은 요즘 매우 효율적이다. 그러나 병목 현상을 발견하면 제안을 매우 환영합니다! – Sanne

+0

리플렉션이 직접 메서드 호출만큼 빠르지는 않을 것이라고 생각합니다. 직접 getter 호출을 기반으로 내 자신의 개체 - 투 - 문서 매핑을 제공하는 방법을 찾고 있습니다. – Denis

답변

2

@ClassBridge를 사용하여 고유 한 매핑을 정의 할 수 있습니다. 커스텀 ClassBridge 구현은 객체 인스턴스가 될 것이고 직접 필드에 접근하거나 getter를 호출하여 Lucene Document를 직접 생성 할 수 있습니다. 여기에 해당

전체 예 :

http://docs.jboss.org/hibernate/search/4.2/reference/en-US/html_single/#d0e4102

아직도, 그 반사하여 성능 문제가되지 않습니다 꽤 확신합니다. 구성이나 측정 방식에 문제가있을 수 있으므로 프로파일 러를 사용하여 문제가되는 영역을 좁히는 것이 좋습니다.