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?

32
demandé sur M4N 2011-06-19 21:26:42

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.

12
répondu Digbyswift 2011-06-19 17:41:09

une bonne alternative serait d'utiliser le Glimpse plugin:

NHibernate.Aperçu

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.

http://j.mp/16tfXVZ

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):

http://j.mp/16thcEP

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.

http://j.mp/16ti4cs


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.Core1.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);
39
répondu Răzvan Flavius Panda 2013-09-26 16:09:09

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>
4
répondu Muxa 2012-10-30 20:59:24

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à.

3
répondu Jason Barile 2011-06-20 06:04:36