1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2024-12-10 11:10:40 +02:00

Added MiniProfiler

This commit is contained in:
kay.one 2011-06-13 18:35:44 -07:00
parent add780b431
commit 6355d5ada1
16 changed files with 6676 additions and 23 deletions

Binary file not shown.

View File

@ -66,6 +66,7 @@
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="EnumMember" /> <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="EnumMember" />
<PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="Other" /> <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="Other" />
<Abbreviation Text="IIS" /> <Abbreviation Text="IIS" />
<Abbreviation Text="SQ" />
</Naming2> </Naming2>
</CodeStyleSettings> </CodeStyleSettings>
</Configuration> </Configuration>

File diff suppressed because it is too large Load Diff

View File

@ -168,6 +168,7 @@
</Content> </Content>
<Content Include="Files\Queue.xml"> <Content Include="Files\Queue.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
<SubType>Designer</SubType>
</Content> </Content>
<Content Include="Files\QueueEmpty.xml"> <Content Include="Files\QueueEmpty.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>

View File

@ -1,9 +1,8 @@
using System; using System;
using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using MvcMiniProfiler.Data;
using System.Text;
using SubSonic.DataProviders; using SubSonic.DataProviders;
using SubSonic.DataProviders.SQLite;
using SubSonic.Repository; using SubSonic.Repository;
namespace NzbDrone.Core.Datastore namespace NzbDrone.Core.Datastore
@ -41,7 +40,7 @@ public static String LogConnectionString
public static IDataProvider GetDataProvider(string connectionString) public static IDataProvider GetDataProvider(string connectionString)
{ {
return ProviderFactory.GetProvider(connectionString, "System.Data.SQLite"); return new ProfiledSQLiteProvider(connectionString, "System.Data.SQLite");
} }
public static IRepository CreateSimpleRepository(IDataProvider dataProvider) public static IRepository CreateSimpleRepository(IDataProvider dataProvider)
@ -55,4 +54,19 @@ public static IRepository CreateSimpleRepository(string connectionString)
} }
} }
public class ProfiledSQLiteProvider : SQLiteProvider
{
public ProfiledSQLiteProvider(string connectionString, string providerName)
: base(connectionString, providerName)
{
}
public override System.Data.Common.DbConnection CreateConnection(string connectionString)
{
return ProfiledDbConnection.Get(base.CreateConnection(connectionString));
}
}
} }

View File

@ -129,6 +129,9 @@
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\Libraries\Exceptioneer.WindowsFormsClient.dll</HintPath> <HintPath>..\Libraries\Exceptioneer.WindowsFormsClient.dll</HintPath>
</Reference> </Reference>
<Reference Include="MvcMiniProfiler">
<HintPath>..\packages\MiniProfiler.1.2\lib\MvcMiniProfiler.dll</HintPath>
</Reference>
<Reference Include="Ninject, Version=2.2.0.0, Culture=neutral, PublicKeyToken=c7192dc5380945e7, processorArchitecture=MSIL"> <Reference Include="Ninject, Version=2.2.0.0, Culture=neutral, PublicKeyToken=c7192dc5380945e7, processorArchitecture=MSIL">
<HintPath>..\packages\Ninject.2.2.1.4\lib\net40-Full\Ninject.dll</HintPath> <HintPath>..\packages\Ninject.2.2.1.4\lib\net40-Full\Ninject.dll</HintPath>
</Reference> </Reference>
@ -213,7 +216,6 @@
<Compile Include="Providers\ExternalNotificationProvider.cs" /> <Compile Include="Providers\ExternalNotificationProvider.cs" />
<Compile Include="Providers\Indexer\NzbsOrg.cs" /> <Compile Include="Providers\Indexer\NzbsOrg.cs" />
<Compile Include="Providers\HistoryProvider.cs" /> <Compile Include="Providers\HistoryProvider.cs" />
<Compile Include="Providers\BacklogProvider.cs" />
<Compile Include="Providers\IndexerProvider.cs" /> <Compile Include="Providers\IndexerProvider.cs" />
<Compile Include="Providers\QualityProvider.cs" /> <Compile Include="Providers\QualityProvider.cs" />
<Compile Include="Providers\RootDirProvider.cs" /> <Compile Include="Providers\RootDirProvider.cs" />
@ -227,7 +229,6 @@
<Compile Include="Parser.cs" /> <Compile Include="Parser.cs" />
<Compile Include="Providers\Fakes\FakeNotificationProvider.cs" /> <Compile Include="Providers\Fakes\FakeNotificationProvider.cs" />
<Compile Include="Providers\MediaFileProvider.cs" /> <Compile Include="Providers\MediaFileProvider.cs" />
<Compile Include="Providers\SyncProvider.cs" />
<Compile Include="Model\Notification\ProgressNotification.cs" /> <Compile Include="Model\Notification\ProgressNotification.cs" />
<Compile Include="Providers\NotificationProvider.cs" /> <Compile Include="Providers\NotificationProvider.cs" />
<Compile Include="Providers\Core\ConfigProvider.cs" /> <Compile Include="Providers\Core\ConfigProvider.cs" />

View File

@ -1,17 +0,0 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading;
using NLog;
using NzbDrone.Core.Model.Notification;
using NzbDrone.Core.Providers.Core;
namespace NzbDrone.Core.Providers
{
public class SyncProvider
{
}
}

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="Ninject" version="2.2.1.4" /> <package id="Ninject" version="2.2.1.4" />
<package id="MiniProfiler" version="1.2" />
</packages> </packages>

View File

@ -6,6 +6,7 @@
using System.Web.Caching; using System.Web.Caching;
using System.Web.Mvc; using System.Web.Mvc;
using System.Web.Routing; using System.Web.Routing;
using MvcMiniProfiler;
using Ninject; using Ninject;
using Ninject.Web.Mvc; using Ninject.Web.Mvc;
using NLog; using NLog;
@ -85,6 +86,12 @@ protected void Application_Error(object sender, EventArgs e)
protected void Application_BeginRequest() protected void Application_BeginRequest()
{ {
Thread.CurrentThread.Name = "UI"; Thread.CurrentThread.Name = "UI";
var miniprofiler = MiniProfiler.Start();
}
protected void Application_EndRequest()
{
MiniProfiler.Stop();
} }
} }
} }

View File

@ -57,6 +57,9 @@
<HintPath>..\Libraries\MVC3\Microsoft.Web.Infrastructure.dll</HintPath> <HintPath>..\Libraries\MVC3\Microsoft.Web.Infrastructure.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="MvcMiniProfiler">
<HintPath>..\packages\MiniProfiler.1.2\lib\MvcMiniProfiler.dll</HintPath>
</Reference>
<Reference Include="Ninject, Version=2.2.0.0, Culture=neutral, PublicKeyToken=c7192dc5380945e7, processorArchitecture=MSIL"> <Reference Include="Ninject, Version=2.2.0.0, Culture=neutral, PublicKeyToken=c7192dc5380945e7, processorArchitecture=MSIL">
<HintPath>..\packages\Ninject.2.2.1.4\lib\net40-Full\Ninject.dll</HintPath> <HintPath>..\packages\Ninject.2.2.1.4\lib\net40-Full\Ninject.dll</HintPath>
</Reference> </Reference>

View File

@ -13,6 +13,7 @@
<link href="../../Content/jquery-ui.css" rel="stylesheet" type="text/css" /> <link href="../../Content/jquery-ui.css" rel="stylesheet" type="text/css" />
<link href="../../Content/jquery-ui.custom.css" rel="stylesheet" type="text/css" /> <link href="../../Content/jquery-ui.custom.css" rel="stylesheet" type="text/css" />
@RenderSection("HeaderContent", required: false) @RenderSection("HeaderContent", required: false)
@MvcMiniProfiler.MiniProfiler.RenderIncludes()
</head> </head>
<body> <body>
<div id="centered"> <div id="centered">

View File

@ -9,4 +9,5 @@
<package id="jQuery.vsdoc" version="1.6" /> <package id="jQuery.vsdoc" version="1.6" />
<package id="jQuery.Validation" version="1.8.0.1" /> <package id="jQuery.Validation" version="1.8.0.1" />
<package id="jQuery" version="1.6.1" /> <package id="jQuery" version="1.6.1" />
<package id="MiniProfiler" version="1.2" />
</packages> </packages>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,546 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>MvcMiniProfiler</name>
</assembly>
<members>
<member name="T:MvcMiniProfiler.ExecuteType">
<summary>
Categories of sql statements.
</summary>
</member>
<member name="F:MvcMiniProfiler.ExecuteType.None">
<summary>
Unknown
</summary>
</member>
<member name="F:MvcMiniProfiler.ExecuteType.NonQuery">
<summary>
DML statements that alter database state, e.g. INSERT, UPDATE
</summary>
</member>
<member name="F:MvcMiniProfiler.ExecuteType.Scalar">
<summary>
Statements that return a single record
</summary>
</member>
<member name="F:MvcMiniProfiler.ExecuteType.Reader">
<summary>
Statements that iterate over a result set
</summary>
</member>
<member name="M:MvcMiniProfiler.Data.ProfiledDbProviderFactory.System#IServiceProvider#GetService(System.Type)">
<summary>
Extension mechanism for additional services;
</summary>
<returns>requested service provider or null.</returns>
</member>
<member name="T:MvcMiniProfiler.Timing">
<summary>
An individual profiling step that can contain child steps.
</summary>
</member>
<member name="F:MvcMiniProfiler.Timing._profiler">
<summary>
Reference to the containing profiler, allowing this Timing to affect the Head and get Stopwatch readings.
</summary>
</member>
<member name="F:MvcMiniProfiler.Timing._startTicks">
<summary>
Offset from parent MiniProfiler's creation that this Timing was created.
</summary>
</member>
<member name="M:MvcMiniProfiler.Timing.#ctor(MvcMiniProfiler.MiniProfiler,MvcMiniProfiler.Timing,System.String)">
<summary>
Creates a new Timing named 'name' in the 'profiler's session, with 'parent' as this Timing's immediate ancestor.
</summary>
</member>
<member name="M:MvcMiniProfiler.Timing.#ctor">
<summary>
Obsolete - used for serialization.
</summary>
</member>
<member name="M:MvcMiniProfiler.Timing.AddKeyValue(System.String,System.String)">
<summary>
Adds arbitrary string 'value' under 'key', allowing custom properties to be stored in this Timing step.
</summary>
</member>
<member name="M:MvcMiniProfiler.Timing.Stop">
<summary>
Completes this Timing's duration and sets the MiniProfiler's Head up one level.
</summary>
</member>
<member name="P:MvcMiniProfiler.Timing.Id">
<summary>
Unique identifer for this timing; set during construction.
</summary>
</member>
<member name="P:MvcMiniProfiler.Timing.Name">
<summary>
Text displayed when this Timing is rendered.
</summary>
</member>
<member name="P:MvcMiniProfiler.Timing.DurationMilliseconds">
<summary>
How long this Timing step took in ms; includes any <see cref="P:MvcMiniProfiler.Timing.Children"/> Timings' durations.
</summary>
</member>
<member name="P:MvcMiniProfiler.Timing.StartMilliseconds">
<summary>
The offset from the start of profiling.
</summary>
</member>
<member name="P:MvcMiniProfiler.Timing.Children">
<summary>
All sub-steps that occur within this Timing step. Add new children through <see cref="M:MvcMiniProfiler.Timing.AddChild(MvcMiniProfiler.Timing)"/>
</summary>
</member>
<member name="P:MvcMiniProfiler.Timing.KeyValues">
<summary>
Stores arbitrary key/value strings on this Timing step. Add new tuples through <see cref="M:MvcMiniProfiler.Timing.AddKeyValue(System.String,System.String)"/>.
</summary>
</member>
<member name="P:MvcMiniProfiler.Timing.SqlTimings">
<summary>
Any queries that occurred during this Timing step.
</summary>
</member>
<member name="P:MvcMiniProfiler.Timing.Parent">
<summary>
Which Timing this Timing is under - the duration that this step takes will be added to its parent's duration.
</summary>
<remarks>This will be null for the root (initial) Timing.</remarks>
</member>
<member name="P:MvcMiniProfiler.Timing.DurationWithoutChildrenMilliseconds">
<summary>
Gets the ellapsed milliseconds in this step without any children's durations.
</summary>
</member>
<member name="P:MvcMiniProfiler.Timing.IsTrivial">
<summary>
Returns true when this <see cref="P:MvcMiniProfiler.Timing.DurationWithoutChildrenMilliseconds"/> is less than the configured
<see cref="P:MvcMiniProfiler.MiniProfiler.Settings.TrivialDurationThresholdMilliseconds"/>, by default 2.0 ms.
</summary>
</member>
<member name="P:MvcMiniProfiler.Timing.HasChildren">
<summary>
Returns true when this Timing has inner Timing steps.
</summary>
</member>
<member name="P:MvcMiniProfiler.Timing.HasSqlTimings">
<summary>
Returns true if this Timing step collected sql execution timings.
</summary>
</member>
<member name="P:MvcMiniProfiler.Timing.IsRoot">
<summary>
Returns true when this Timing is the first one created in a MiniProfiler session.
</summary>
</member>
<member name="P:MvcMiniProfiler.Timing.Depth">
<summary>
How far away this Timing is from the Profiler's Root.
</summary>
</member>
<member name="P:MvcMiniProfiler.Data.ProfiledDbCommand.BindByName">
<summary>
If the underlying command supports BindByName, this sets/clears the underlying
implementation accordingly. This is required to support OracleCommand from dapper-dot-net
</summary>
</member>
<member name="T:MvcMiniProfiler.Data.ProfiledDbConnection">
<summary>
Wraps a database connection, allowing sql execution timings to be collected when a <see cref="T:MvcMiniProfiler.MiniProfiler"/> session is started.
</summary>
</member>
<member name="M:MvcMiniProfiler.Data.ProfiledDbConnection.Get(System.Data.Common.DbConnection)">
<summary>
When <see cref="P:MvcMiniProfiler.MiniProfiler.Current"/> is not null, returns a new <see cref="T:MvcMiniProfiler.Data.ProfiledDbConnection"/> that wraps <paramref name="connection"/>,
providing query execution profiling. If <see cref="P:MvcMiniProfiler.MiniProfiler.Current"/> is null, connection is returned unwrapped.
</summary>
<param name="connection">Your provider-specific flavor of connection, e.g. SqlConnection, OracleConnection</param>
</member>
<member name="M:MvcMiniProfiler.Data.ProfiledDbConnection.Get(System.Data.Common.DbConnection,MvcMiniProfiler.MiniProfiler)">
<summary>
When <paramref name="profiler"/> is not null, returns a new <see cref="T:MvcMiniProfiler.Data.ProfiledDbConnection"/> that wraps <paramref name="connection"/>,
providing query execution profiling. If profiler is null, connection is returned unwrapped.
</summary>
<param name="connection">Your provider-specific flavor of connection, e.g. SqlConnection, OracleConnection</param>
<param name="profiler">The currently started <see cref="T:MvcMiniProfiler.MiniProfiler"/> or null.</param>
</member>
<member name="M:MvcMiniProfiler.Data.ProfiledDbConnection.#ctor(System.Data.Common.DbConnection,MvcMiniProfiler.MiniProfiler)">
<summary>
Returns a new <see cref="T:MvcMiniProfiler.Data.ProfiledDbConnection"/> that wraps <paramref name="connection"/>,
providing query execution profiling. If profiler is null, no profiling will occur.
</summary>
<param name="connection">Your provider-specific flavor of connection, e.g. SqlConnection, OracleConnection</param>
<param name="profiler">The currently started <see cref="T:MvcMiniProfiler.MiniProfiler"/> or null.</param>
</member>
<member name="T:MvcMiniProfiler.SqlTiming">
<summary>
Profiles a single sql execution.
</summary>
</member>
<member name="M:MvcMiniProfiler.SqlTiming.#ctor(System.Data.Common.DbCommand,MvcMiniProfiler.ExecuteType,MvcMiniProfiler.MiniProfiler)">
<summary>
Creates a new SqlTiming to profile 'command'.
</summary>
</member>
<member name="M:MvcMiniProfiler.SqlTiming.#ctor">
<summary>
Obsolete - used for serialization.
</summary>
</member>
<member name="M:MvcMiniProfiler.SqlTiming.ExecutionComplete(System.Boolean)">
<summary>
Called when command execution is finished to determine this SqlTiming's duration.
</summary>
</member>
<member name="M:MvcMiniProfiler.SqlTiming.ReaderFetchComplete">
<summary>
Called when database reader is closed, ending profiling for <see cref="F:MvcMiniProfiler.ExecuteType.Reader"/> SqlTimings.
</summary>
</member>
<member name="P:MvcMiniProfiler.SqlTiming.ExecuteType">
<summary>
Category of sql statement executed.
</summary>
</member>
<member name="P:MvcMiniProfiler.SqlTiming.CommandString">
<summary>
The sql that was executed.
</summary>
</member>
<member name="P:MvcMiniProfiler.SqlTiming.StackTraceSnippet">
<summary>
Roughly where in the calling code that this sql was executed.
</summary>
</member>
<member name="P:MvcMiniProfiler.SqlTiming.StartMilliseconds">
<summary>
Offset from main MiniProfiler start that this sql began.
</summary>
</member>
<member name="P:MvcMiniProfiler.SqlTiming.DurationMilliseconds">
<summary>
How long this sql statement took to execute.
</summary>
</member>
<member name="P:MvcMiniProfiler.SqlTiming.FirstFetchDurationMilliseconds">
<summary>
When executing readers, how long it took to come back initially from the database,
before all records are fetched and reader is closed.
</summary>
</member>
<member name="T:MvcMiniProfiler.Helpers.StackTraceSnippet">
<summary>
Gets part of a stack trace containing only methods we care about.
</summary>
</member>
<member name="F:MvcMiniProfiler.Helpers.StackTraceSnippet.TypesToExclude">
<summary>
Contains the default list of full type names we don't want in any stack trace snippets.
</summary>
</member>
<member name="T:MvcMiniProfiler.MiniProfiler">
<summary>
A single MiniProfiler can be used to represent any number of steps/levels in a call-graph, via Step()
</summary>
<remarks>Totally baller.</remarks>
</member>
<member name="F:MvcMiniProfiler.MiniProfiler._watch">
<summary>
Starts when this profiler is instantiated. Each <see cref="T:MvcMiniProfiler.Timing"/> step will use this Stopwatch's current ticks as
their starting time.
</summary>
</member>
<member name="M:MvcMiniProfiler.MiniProfiler.#ctor(System.String,MvcMiniProfiler.ProfileLevel)">
<summary>
Creates and starts a new MiniProfiler for the root <paramref name="url"/>, filtering <see cref="T:MvcMiniProfiler.Timing"/> steps to <paramref name="level"/>.
</summary>
</member>
<member name="M:MvcMiniProfiler.MiniProfiler.#ctor">
<summary>
Obsolete - used for serialization.
</summary>
</member>
<member name="M:MvcMiniProfiler.MiniProfiler.GetTimingHierarchy">
<summary>
Walks the <see cref="T:MvcMiniProfiler.Timing"/> hierarchy contained in this profiler, starting with <see cref="P:MvcMiniProfiler.MiniProfiler.Root"/>, and returns each Timing found.
</summary>
</member>
<member name="M:MvcMiniProfiler.MiniProfiler.GetSqlTimings">
<summary>
Returns all <see cref="T:MvcMiniProfiler.SqlTiming"/> results contained in all child <see cref="T:MvcMiniProfiler.Timing"/> steps.
</summary>
</member>
<member name="M:MvcMiniProfiler.MiniProfiler.GetRoundedMilliseconds(System.Int64)">
<summary>
Returns milliseconds based on Stopwatch's Frequency.
</summary>
</member>
<member name="M:MvcMiniProfiler.MiniProfiler.Start(MvcMiniProfiler.ProfileLevel)">
<summary>
Starts a new MiniProfiler for the current Request. This new profiler can be accessed by
<see cref="P:MvcMiniProfiler.MiniProfiler.Current"/>
</summary>
</member>
<member name="M:MvcMiniProfiler.MiniProfiler.Stop(System.Boolean)">
<summary>
Ends the current profiling session, if one exists.
</summary>
<param name="discardResults">
When true, clears the <see cref="P:MvcMiniProfiler.MiniProfiler.Current"/> for this HttpContext, allowing profiling to
be prematurely stopped and discarded. Useful for when a specific route does not need to be profiled.
</param>
</member>
<member name="M:MvcMiniProfiler.MiniProfiler.RenderIncludes">
<summary>
Returns the css and javascript includes needed to display the MiniProfiler results UI.
</summary>
<returns>Script and link elements normally; an empty string when there is no active profiling session.</returns>
</member>
<member name="P:MvcMiniProfiler.MiniProfiler.Id">
<summary>
Identifies this Profiler so it may be stored/cached.
</summary>
</member>
<member name="P:MvcMiniProfiler.MiniProfiler.Name">
<summary>
A display name for this profiling session.
</summary>
</member>
<member name="P:MvcMiniProfiler.MiniProfiler.Started">
<summary>
When this profiler was instantiated.
</summary>
</member>
<member name="P:MvcMiniProfiler.MiniProfiler.MachineName">
<summary>
Where this profiler was run.
</summary>
</member>
<member name="P:MvcMiniProfiler.MiniProfiler.Level">
<summary>
Allows filtering of <see cref="T:MvcMiniProfiler.Timing"/> steps based on what <see cref="T:MvcMiniProfiler.ProfileLevel"/>
the steps are created with.
</summary>
</member>
<member name="P:MvcMiniProfiler.MiniProfiler.Root">
<summary>
The first <see cref="T:MvcMiniProfiler.Timing"/> that is created and started when this profiler is instantiated.
All other <see cref="T:MvcMiniProfiler.Timing"/>s will be children of this one.
</summary>
</member>
<member name="P:MvcMiniProfiler.MiniProfiler.SqlProfiler">
<summary>
Contains information about queries executed during this profiling session.
</summary>
</member>
<member name="P:MvcMiniProfiler.MiniProfiler.DurationMilliseconds">
<summary>
Milliseconds, to one decimal place, that this MiniProfiler ran.
</summary>
</member>
<member name="P:MvcMiniProfiler.MiniProfiler.DurationMillisecondsInSql">
<summary>
Milliseconds, to one decimal place, that this MiniProfiler was executing sql.
</summary>
</member>
<member name="P:MvcMiniProfiler.MiniProfiler.HasSqlTimings">
<summary>
Returns true when we have profiled queries.
</summary>
</member>
<member name="P:MvcMiniProfiler.MiniProfiler.ElapsedTicks">
<summary>
Ticks since this MiniProfiler was started.
</summary>
</member>
<member name="P:MvcMiniProfiler.MiniProfiler.Head">
<summary>
Points to the currently executing Timing.
</summary>
</member>
<member name="P:MvcMiniProfiler.MiniProfiler.Current">
<summary>
Gets the currently running MiniProfiler for the current HttpContext; null if no MiniProfiler was <see cref="M:MvcMiniProfiler.MiniProfiler.Start(MvcMiniProfiler.ProfileLevel)"/>ed.
</summary>
</member>
<member name="T:MvcMiniProfiler.MiniProfiler.Settings">
<summary>
Various configuration properties.
</summary>
</member>
<member name="M:MvcMiniProfiler.MiniProfiler.Settings.EnsureCacheMethods">
<summary>
When setters are null, creates default getters and setters that operate on the HttpRuntime.Cache.
</summary>
<remarks>
Our MiniProfiler must have these to run.
</remarks>
</member>
<member name="P:MvcMiniProfiler.MiniProfiler.Settings.WriteScriptsToResponseOnStop">
<summary>
When true, link and script tags will be written to the response stream when MiniProfiler.Stop is called.
</summary>
</member>
<member name="P:MvcMiniProfiler.MiniProfiler.Settings.TrivialDurationThresholdMilliseconds">
<summary>
Any Timing step with a duration less than or equal to this will be hidden by default in the UI; defaults to 2.0 ms.
</summary>
</member>
<member name="P:MvcMiniProfiler.MiniProfiler.Settings.RenderPopupButtonOnRight">
<summary>
Dictates on which side of the page the profiler popup button is displayed; defaults to false (i.e. renders on left side).
</summary>
</member>
<member name="P:MvcMiniProfiler.MiniProfiler.Settings.IgnoredRootPaths">
<summary>
When <see cref="M:MvcMiniProfiler.MiniProfiler.Start(MvcMiniProfiler.ProfileLevel)"/> is called, if the current request url starts with this property,
no profiler will be instantiated and no results will be displayed.
Default value is { "/mini-profiler-includes.js", "/mini-profiler-includes.less", "/mini-profiler-results", "/content/", "/scripts/" }.
</summary>
</member>
<member name="P:MvcMiniProfiler.MiniProfiler.Settings.ShortTermCacheGetter">
<summary>
A method that will return a MiniProfiler when given a Guid. Meant for caching individual page profilings for a
very limited time.
</summary>
<remarks>
By default, MiniProfilers will be cached for 5 minutes in the HttpRuntime.Cache. This can be extended when the cache is shared
from its top link.
</remarks>
</member>
<member name="P:MvcMiniProfiler.MiniProfiler.Settings.ShortTermCacheSetter">
<summary>
A method that will save a MiniProfiler into a short-duration cache, so results can fetched down to the client after page load.
It is important that you cache the MiniProfiler under its Id, a Guid - this Id will be passed to the ShortTermCacheGetter.
</summary>
<remarks>
By default, MiniProfilers will be cached for 5 minutes in the HttpRuntime.Cache.
</remarks>
</member>
<member name="P:MvcMiniProfiler.MiniProfiler.Settings.LongTermCacheGetter">
<summary>
A method that will return a MiniProfiler when given a Guid. Meant for caching profilings for an extended period of time, so
they may be shared with others.
</summary>
<remarks>
This is used by the full page results view, which is linked in the popup's header.
</remarks>
</member>
<member name="P:MvcMiniProfiler.MiniProfiler.Settings.LongTermCacheSetter">
<summary>
A method that will save a MiniProfiler, identified by its Guid Id, into long-term storage. Allows results to be shared with others.
It is important that you cache the MiniProfiler under its Id, a Guid - this Id will be passed to the LongTermCacheGetter.
</summary>
<remarks>
This is activated EVERY TIME the top left header link is clicked in the popup UI and the full page results
view is displayed. When overriding the default, your code will need to handle setting the same profiler
back into your chosen storage medium (e.g. no-op when it already exists).
</remarks>
</member>
<member name="P:MvcMiniProfiler.MiniProfiler.Settings.Version">
<summary>
Assembly version of this dank MiniProfiler.
</summary>
</member>
<member name="T:MvcMiniProfiler.UI.MiniProfilerHandler">
<summary>
Understands how to route and respond to MiniProfiler UI urls.
</summary>
</member>
<member name="M:MvcMiniProfiler.UI.MiniProfilerHandler.GetHttpHandler(System.Web.Routing.RequestContext)">
<summary>
Returns this <see cref="T:MvcMiniProfiler.UI.MiniProfilerHandler"/> to handle <paramref name="requestContext"/>.
</summary>
</member>
<member name="M:MvcMiniProfiler.UI.MiniProfilerHandler.ProcessRequest(System.Web.HttpContext)">
<summary>
Returns either includes' css/javascript or results' html.
</summary>
</member>
<member name="M:MvcMiniProfiler.UI.MiniProfilerHandler.Includes(System.Web.HttpContext)">
<summary>
Handles rendering our .js and .less static content files.
</summary>
</member>
<member name="M:MvcMiniProfiler.UI.MiniProfilerHandler.Results(System.Web.HttpContext)">
<summary>
Handles rendering a previous MiniProfiler session, identified by its "?id=GUID" on the query.
</summary>
</member>
<member name="F:MvcMiniProfiler.UI.MiniProfilerHandler._ResourceCache">
<summary>
Embedded resource contents keyed by filename.
</summary>
</member>
<member name="M:MvcMiniProfiler.UI.MiniProfilerHandler.NotFound(System.Web.HttpContext,System.String,System.String)">
<summary>
Helper method that sets a proper 404 response code.
</summary>
</member>
<member name="P:MvcMiniProfiler.UI.MiniProfilerHandler.IsReusable">
<summary>
Try to keep everything static so we can easily be reused.
</summary>
</member>
<member name="T:MvcMiniProfiler.Data.Link`2">
<summary>
This is a micro-cache; suitable when the number of terms is controllable (a few hundred, for example),
and strictly append-only; you cannot change existing values. All key matches are on **REFERENCE**
equality. The type is fully thread-safe.
</summary>
</member>
<member name="T:MvcMiniProfiler.ProfileLevel">
<summary>
Categorizes individual <see cref="T:MvcMiniProfiler.Timing"/> steps to allow filtering.
</summary>
</member>
<member name="F:MvcMiniProfiler.ProfileLevel.Info">
<summary>
Default level given to Timings.
</summary>
</member>
<member name="F:MvcMiniProfiler.ProfileLevel.Verbose">
<summary>
Useful when profiling many items in a loop, but you don't wish to always see this detail.
</summary>
</member>
<member name="T:MvcMiniProfiler.MiniProfilerExtensions">
<summary>
Contains helper methods that ease working with null <see cref="T:MvcMiniProfiler.MiniProfiler"/>s.
</summary>
</member>
<member name="M:MvcMiniProfiler.MiniProfilerExtensions.Inline``1(MvcMiniProfiler.MiniProfiler,System.Func{``0},System.String)">
<summary>
Wraps <paramref name="selector"/> in a <see cref="M:MvcMiniProfiler.MiniProfilerExtensions.Step(MvcMiniProfiler.MiniProfiler,System.String,MvcMiniProfiler.ProfileLevel)"/> call and executes it, returning its result.
</summary>
<param name="profiler">The current profiling session or null.</param>
<param name="selector">Method to execute and profile.</param>
<param name="name">The <see cref="T:MvcMiniProfiler.Timing"/> step name used to label the profiler results.</param>
<returns></returns>
</member>
<member name="M:MvcMiniProfiler.MiniProfilerExtensions.Step(MvcMiniProfiler.MiniProfiler,System.String,MvcMiniProfiler.ProfileLevel)">
<summary>
Returns an <see cref="T:System.IDisposable"/> that will time the code between its creation and disposal.
</summary>
<param name="profiler">The current profiling session or null.</param>
<param name="name">A descriptive name for the code that is encapsulated by the resulting IDisposable's lifetime.</param>
<param name="level">This step's visibility level; allows filtering when <see cref="M:MvcMiniProfiler.MiniProfiler.Start(MvcMiniProfiler.ProfileLevel)"/> is called.</param>
</member>
<member name="M:MvcMiniProfiler.MiniProfilerExtensions.AddProfilerResults(MvcMiniProfiler.MiniProfiler,MvcMiniProfiler.MiniProfiler)">
<summary>
Adds <paramref name="externalProfiler"/>'s <see cref="T:MvcMiniProfiler.Timing"/> hierarchy to this profiler's current Timing step,
allowing other threads, remote calls, etc. to be profiled and joined into this profiling session.
</summary>
</member>
<member name="M:MvcMiniProfiler.MiniProfilerExtensions.Render(MvcMiniProfiler.MiniProfiler)">
<summary>
Returns an html-encoded string with a text-representation of <paramref name="profiler"/>; returns "" when profiler is null.
</summary>
<param name="profiler">The current profiling session or null.</param>
</member>
</members>
</doc>