나는 문법 관계와 의미 매핑 프레임 워크를위한 규칙 엔진으로 Drools를 사용하려고한다. 룰베이스는 지금도 5000 개가 넘고 확장 될 것입니다. 현재 Drools를 사용할 때, 규칙을 포함하고 지식 기반을 생성하는 drl 파일을 읽을 때마다 프로그램을 실행할 때마다 많은 시간이 필요합니다. 지식베이스를 한 번 생성 한 다음 변경이있을 때만 지식 기반을 재생성하는 옵션과 함께 빠르게로드 할 수있는 일부 영구 형식으로 저장하는 방법이 있습니까?DOLols 지식 기반의 빠른 로딩
4
A
답변
2
예, drools은 지식 저장소를 외부 저장소로 직렬화 한 다음이 직렬화 된 기술 자료를 다시로드 할 수 있습니다.
따라서 drl에서로드하고 컴파일하고 직렬 출력하는주기가 필요합니다. 그런 다음 직렬화 된 버전을 사용하는 두 번째 사이클.
저는 이것을 약간의 성공과 함께 사용하여 1 분 30 로딩 시간을 약 15-20 초로 줄였습니다. 또한 heap/perm gen 요구 사항도 줄일 수 있습니다.
정확한 방법은 API를 확인하십시오.
0
내 생각은 가능한 한 오랫동안 지식 기반을 유지하는 것입니다. 다른 규칙 세트에서 여러 지식 기반을 작성하지 않고 가능한 많은 조합이있는 경우 해당 지식 기반에 매달려 있어야합니다. 하나의 지식 기반에는 모든 규칙이 있으므로 단일 규칙처럼 취급합니다.
그러나 이것이 가능하지 않거나 응용 프로그램이 오래 실행되지 않으면 Drools가 속도를 높이는 방법을 제공하지 못한다. 디버거를 통해 Drools 5.0 프로젝트를 실행하면 KnowledgeBase Drools에서 Serializable을 제공합니다. 규칙을 다시 분석하는 것보다 KnowledgeBase를 deserialize하는 것이 더 빠를 것이라고 생각합니다. 그러나이 문제를 해결하기 위해주의해야합니다. 인터페이스에 이유를 사용하면 구현이 경고없이 변경 될 수 있습니다.
관련 문제
- 1. 기술적이지 않은 질문 : 지식> 경험 또는 경험> 지식?
- 2. 스프링/스프링 보안 등을 결정하는 데 필요한 지식 지식
- 3. 테스트 프롤로그 지식
- 4. 팀에서 지식 이전 관행
- 5. 평가/지식 테스트 질문
- 6. ASP.NET 지식 업데이트
- 7. 기본적인 SQL 지식?
- 8. Stratego/XT : 기초 지식 이해하기
- 9. 제한 클라이언트 지식 워크 플로우
- 10. 레일즈상의 루비에 대한 데이터베이스 지식
- 11. 스택 기반의 palindrome checker
- 12. Qt 기반의 addSlashes 버전이에요
- 13. htaccess는 날짜 기반의 리디렉션
- 14. id 기반의 ListView 행
- 15. 터치 기반의 iPhone 애니메이션
- 16. 시험 시간 기반의 스크립트
- 17. Google지도 위치 기반의 주소
- 18. 문자열 기반의 GWT 정렬
- 19. 장고 클래스 기반의 뷰
- 20. 자바 기반의 암호기는
- 21. 배포 위키 기반의 문서
- 22. 행 기반의 동적 탐색
- 23. Silverlight 기반의 거래 플랫폼?
- 24. 클래스 기반의 가장
- 25. 윈도우 기반의 아이폰 SDK는
- 26. 사실 및/또는 일반적인 지식 저장
- 27. 본 기술 지식 격차는 어느 정도입니까?
- 28. 지식 검색 및 데이터 마이닝이란 무엇입니까?
- 29. 데이터 구조에 대한 지식 향상을위한 샘플 문제
- 30. Django의 동적 로딩 및 정적 로딩 모듈