Support & Documentation
Follow

Prefix: Profiling Abilities for .NET

Prefix is a lightweight .NET CLR profiler. It does not track every single method called by your app like standard profilers do (ANTS, dotTrace, Visual Studio, etc). Prefix only tracks certain methods in your code. Because of this Prefix does not slow your app down and you can use it all the time.

The following frameworks are automatically supported by Prefix with no code or config changes unless noted. Profiler traces will automatically include details from these libraries. Please note that most async functions are supported as well. 

Prefix will also automatically track key details associated within many of these technologies. For example, on a cache call it may automatically show the cache key used. Web requests will show the response status code and size.

UI Frameworks

The following are supported for IIS based apps. Self hosted web app support is coming soon for Prefix.

  • ASP.NET Core RC1
  • WebForms
  • MVC
  • Web API
  • WCF
  • WebPages
  • Owin

3rd party routing frameworks:

  • Nancy
  • ServiceStack
  • Sitecore

Databases

Most ORM solutions like Entity Framework, NHibernate, Dapper, Linq2SQL and others work perfectly. Unfortunately, Devart libraries are not currently supported. 

  • SQL Server
  • MySql (MySql.Data.MySqlClient)
  • Oracle (Oracle.ManagedDataAccess & System.Data.OracleClient)
  • Postgres (Npgsql)
  • SQL Server CE
  • ODBC via OdbcCommand

Storage/NoSQL

  • MongoDB (MongoDB.Driver v1 & v2)
  • Elasticsearch
  • RavenDB
  • Azure libraries (see below)
  • AWS libraries (see below)

Logging

  • All thrown Exceptions
  • Debug.WriteLine
  • Trace.WriteLine
  • StackifyLib (Stackify's SDK) direct logging

By adding the Stackify logging appender to your app config file you can view these logs:

  • log4net
  • NLog
  • Serilog

Cache

  • Redis (ServiceStack & StackExchange)
  • memcached (enyim)
  • AppFabric & Azure Cache (Microsoft cache)

Queues

  • Azure Service Bus
  • Azure Storage Queue
  • MSMQ
  • NServiceBus

Web Requests

Where possible, web requests will track total download time, serialization and deserialization automatically. Read our blog post about this: Why calling a web service takes longer than you think

  • Low level HttpWebRequest/HttpWebResponse
  • WebClient 
  • HttpClient 
  • RestSharp
  • Auto generated WCF proxy clients
  • Plus others from libraries that use HTTP within them like Elasticsearch, Azure storage, etc

Azure

  • SQL Azure
  • Storage (Blobs, Queues, Tables)
  • Document DB
  • Azure Service Bus
  • Caching (via Redis & AppFabric support)

AWS

  • S3
  • SimpleDB
  • SimpleEmail
  • SimpleNotificationService (SNS)
  • SimpleWorkflow
  • SQS
  • ElastiCache (via memcached & redis support)
  • CloudSearch
  • Redshift
  • ElasticMapReduce
  • ElasticTranscoder
  • Glacier

Other

Prefix also tracks and shows times for some other various activities

  • Estimated compilation time
  • HTTP Modules
  • Reading incoming HTTP post data and deserializing requests
  • Serializing and sending HTTP responses
  • Request queuing

Please also note that things like compilation, GC pauses, JIT time, IIS queuing and other things can also take time in your code and may not be reflected by Prefix. 

 

Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request

Comments

Powered by Zendesk