2010-05-17 8 views
3

Quelqu'un est-il tombé sur un problème où NHibernate est extrêmement lent dans Visual Studio lors du débogage, mais se comporte normalement lorsqu'il est exécuté séparément? NHProfiler montre que les requêtes ont été exécutées très rapidement (du côté SQL je présume), mais chaque session avec 10 requêtes prend environ 4 secondes. J'utilise SQL Express Server. Comme je l'ai dit, même si j'allume la journalisation complète et exécute mon application sans Visual Studio, il est d'une ampleur beaucoup plus rapide.NHibernate très lent lors du débogage

Mise à jour. Après des heures et des heures de travail, j'ai réussi à corriger le problème en changeant simplement le type de projet de Application Windows en Application Console (bien qu'en réalité il s'agit d'un Service Windows, mais cela fonctionne toujours avec le type de projet Application Windows). Quelle pourrait être la différence pour arrêter NHibernate en mode de débogage?

+0

peut-être que vous inspectez les choses qui déclenchent le chargement paresseux? –

+0

Non, je n'utilise pas de points d'arrêt, c'est juste en mode debug. –

+0

comment savez-vous que c'est NHibernate qui fonctionne lentement? –

Répondre

3

J'avais le même problème avec mon application WinForms. J'ai essayé votre suggestion de le changer pour une application de console et cela a fonctionné! malheureusement avoir la fenêtre de la console n'était pas acceptable. J'ai ensuite trouvé le coupable sous-jacent, je pense. ShowSql() (ou show_sql = true). Désactiver cette option a rendu l'application aussi rapide que lorsqu'elle était exécutée en dehors de Visual Studio. Je suppose que c'est parce que lorsqu'il est exécuté à partir de VS, il redirige la sortie de la console vers la fenêtre de sortie et tout cela prend du temps. Lorsqu'il est exécuté en dehors de Visual Studio, il n'y a pas de sortie de console à écrire, donc c'est plus rapide.

Espérons que cela fonctionne pour vous aussi

+0

J'ai toujours show_sql sur 'true', cela a beaucoup de sens. –