2009-10-26 2 views
3

, 무슨 빠르게 작동합니다NHibernate와 Fluent NHibernate의 시작 성능에 관한 데이터가 있습니까? 한마디로

  • 의 SessionFactory의 프리 D 파일러의 XML을 구성 또는
  • 유창함 NHibernate에 프로그래밍 구성을 제공하는?
+0

차이점에 대해 왜 신경 씁니까? 그것은 초의 작은 분수 일 것입니다, 또는 당신의 경우에 더 오래 걸립니까? – Paco

+0

Fluent NHibernate가 어떻게 동작하는지 알지 못했지만, XML 구성을 파싱하는 것보다 효율적일 수 있다고 생각했습니다. – alex

답변

3

Fluent NHIbernate는 Fluent NHibernate를 사용하지 않는 것보다 XML 문서와 Sessionfactory를 생성하므로 느립니다.

왜 묻는가?

+0

나는 플루 언트 NHibernate가 XML 문서를 생성한다는 것을 알지 못했다. 아마도 prcompiled 매핑을 생성하기 위해 내부 API를 사용하고있을지라도. – alex

8

내 개인적인 경험으로 FluentConfiguration 객체를 설정하는 데 소요되는 시간이 일반적으로 줄어들어 매핑 수가 늘어남에 따라 구성 요소가 늘어나는 것이 경험적이었습니다 (Fluent 사용 여부와 관계없이 불가피한 *).

2.5Ghz의 c2d에서 약 15 개의 매핑이있는 프로젝트에서 FluentConfiguration에는 360ms, Configuration에는 5215ms가 걸렸습니다.

1000 개의 매핑 (2-3 문자열 속성을 가진 간단한 클래스)을 사용하는 테스트 프로젝트에서 FluentConfiguration에는 470ms, Configuration에는 40336 (40 초!)이 걸렸습니다.

* 실제로는 그렇지 않습니다. 구성 비용의 대부분은 XML 매핑의 유효성 검사에서 비롯됩니다. Ayende는 here을 논의했으며 (매핑을 단일 파일로 병합하여 얻은 빠른 속도 향상은 물론) 응용 프로그램 시작시 구성을 작성하는 대신 가능한 방법은 here으로 직렬화하는 것입니다. 1000- 매핑 테스트 프로젝트에서 Configuration 객체를 가져 오는 데 필요한 시간이 약 30ms로 단축되었습니다 (SessionFactory를 ~ 3 초에서 4 초까지 빌드하는 데 필요한 시간이 증가 했음에도 불구하고 이유는 확실하지 않습니다).

관련 문제