Des alternatives gratuites au profileur NHibernate? [fermé]
je me demande s'il y a un autre programme ou moyen de profiler autre que NHibernate profiler. Mon procès s'est terminé et je ne peux pas me le permettre.
Donc existe-il des alternatives?
4 réponses
il y a le profileur SQL qui est livré avec SQL Server Management Studio 2005 et 2008. Je les utilise tout le temps et je les trouve inestimables.
il y a aussi un profileur SQL pour SQL Express À:http://sites.google.com/site/sqlprofiler/
ceux-ci ne sont pas exactement les mêmes que L'excellent profileur NHibernate mais peuvent être tout aussi utiles pour reconnaître les opérations coûteuses et inefficaces.
une bonne alternative serait d'utiliser le Glimpse
plugin:
il affiche le SQL généré par NHibernate, sa pile d'appels associée, les statistiques de session factory, les horaires d'appels, etc. tout en bas de la page actuelle ou dans une nouvelle fenêtre.
Aperçu peut être téléchargé à partir de: getglimpse.com
Il y a aussi une belle présentation sur channel 9: L'équipe de Glimpse sur Canal 9
Installation pour ASP.NET en date du 26-sept-2013 10-Avr-2013
Installation à l'aide du Gestionnaire de paquets de la Console:
PM> Install-Package Glimpse.AspNet
PM> Install-Package NHibernate.Glimpse
enregistrez votre session factory pour voir les statistiques globales:
NHibernate.Glimpse.Plugin.RegisterSessionFactory(mySessionFactory);
lancez votre application web et visitez:
http://localhost:8080/Glimpse.axd
en supposant que l'application fonctionne sur localhost au port 8080.
à partir de là, vous pouvez activer/désactiver Glimpse ou nommer la session.
une fois que vous l'aurez aperçu, il apparaîtra sur les pages de votre site minimisé en bas à droite (cliquez sur le G pour l'ouvrir):
utiliser NHibernate.Glimpse
avec les appels AJAX vous devez sélectionner la requête que vous voulez inspecter dans l'onglet ajax, puis voir les données sur le NHibernate
onglet comme d'habitude.
requêtes AJAX (cette configuration manuelle n'est plus nécessaire dans la dernière version)
pour que cela fonctionne avec les appels ajax vous devez les activer en fonction du type de contenu de la réponse Dans 'Web.config'.
Pour l'ajax control toolkit UpdatePanel
le type de contenu text/plain
est requise:
configuration de Glimpse requise pour ASP.NET WebForms AJAX
ensuite, vous devez sélectionner la requête que vous voulez inspecter dans l'onglet ajax.
Remarques sur l'installation pour Asp.Net dès le 9-Avr-2013:
Installer via le Gestionnaire de paquets de la Console:
PM> Install-Package NHibernate -Version 3.3.2.4000
PM> Install-Package Glimpse -Version 1.0.0-rc1 -Pre
PM> Install-Package -IgnoreDependencies Glimpse.AspNet -Version 1.0.0-rc1 -Pre
Glimpse.AspNet
doit être installé avec -IgnoreDependencies
il n'est donc pas de mise à jour Glimpse.Core
1.0.1
.
Git Clone NHibernate.Extensions
:
git://github.com/ranzlee/NHibernate.Extensions.git
et ajouter Nhibernate.Glimpse
projet de votre solution ou de construire le projet et ajouter une dll de référence.
Ajouter Web.config
:
</configuration>
.
.
.
<appSettings>
<add key="nhibernate-logger" value="NHibernate.Glimpse.LoggerFactory, NHibernate.Glimpse"/>
<add key="NHibernate.Glimpse.Loggers" value="command,connection,flush,load,transaction"/>
</appSettings>
</configuration>
et assurez-vous que vous avez mis le providerName
sur votre chaîne de connexion. Exemple pour SqlClient provider:
<connectionStrings>
<add name="TestDb" providerName="System.Data.SqlClient" connectionString="Server=example.com;database=nhibernate_test;User ID=postgres;Password=password;" />
</connectionStrings>
Et enregistrer votre session d'usine:
NHibernate.Glimpse.Plugin.RegisterSessionFactory(SessionHolder.SessionFactory);
le problème avec L'utilisation de SQL Profiler est que certaines instructions (en particulier les inserts) sont affichées individuellement et il n'y a aucun moyen de voir si batching a été utilisé par NHibernate (http://www.codinginstinct.com/2009/08/profiling-nhibernate-batching.html).
NHibernate utilise log4net pour enregistrer toutes les instructions sql - ceci peut être utilisé pour voir ce qui est réellement envoyé à la base de données.
<logger name="NHibernate.SQL"
additivity="false">
<level value="ALL" />
<appender-ref ref="rollingFile" />
</logger>
je me poserais la question... pouvez-vous vous permettre pas pour l'acheter? C'est seulement 16 $par mois sur le tarif d'abonnement. Basé sur mon essai initial avec elle, il a fait une énorme différence dans la performance de mon projet et m'a appris plusieurs choses au sujet de nHibernate que je ne savais pas déjà.