Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / xsp / System / Web / Util / Profiler.cs / 1 / Profiler.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * Profiler.cs * * Copyright (c) 2000 Microsoft Corporation */ namespace System.Web.Util { using System; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Threading; using System.Collections; internal class Profiler { private int _requestsToProfile; private Queue _requests; private bool _pageOutput; private bool _isEnabled; private bool _oldEnabled; private bool _localOnly; private bool _mostRecent; private TraceMode _outputMode; internal Profiler() { _requestsToProfile = 10; _outputMode = TraceMode.SortByTime; _localOnly = true; _mostRecent = false; _requests = new Queue(_requestsToProfile); } internal bool IsEnabled { get { return _isEnabled;} set { _isEnabled = value; _oldEnabled = value; } } internal bool PageOutput { get { // calling HttpContext.Current is slow, but we'll only get there if _pageOutput is true. return (_pageOutput && !(_localOnly && !HttpContext.Current.Request.IsLocal)); } set { _pageOutput = value; } } internal TraceMode OutputMode { get { return _outputMode;} set { _outputMode = value;} } internal bool LocalOnly { get { return _localOnly;} set { _localOnly = value; } } internal bool MostRecent { get { return _mostRecent; } set { _mostRecent = value; } } internal bool IsConfigEnabled { get { return _oldEnabled; } } internal int RequestsToProfile { get { return _requestsToProfile;} set { // VSWhidbey195368 Silently cap request limit at 10,000 if (value > 10000) { value = 10000; } _requestsToProfile = value; } } internal int RequestsRemaining { get { return _requestsToProfile - _requests.Count;} } internal void Reset() { // start profiling and clear the current log of requests _requests = new Queue(_requestsToProfile); if (_requestsToProfile != 0) _isEnabled = _oldEnabled; else _isEnabled = false; } internal void StartRequest(HttpContext context) { context.Trace.VerifyStart(); } internal void EndRequest(HttpContext context) { context.Trace.EndRequest(); // Don't add the trace data if we aren't enabled if (!IsEnabled) return; // grab trace data and add it to the list lock (_requests) { _requests.Enqueue(context.Trace.GetData()); // If we are storing the most recent, we may need to kick out the first request if (MostRecent) { if (_requests.Count > _requestsToProfile) _requests.Dequeue(); } } // Turn off profiling if we are only tracking the first N requests and we hit the limit. if (!MostRecent && _requests.Count >= _requestsToProfile) EndProfiling(); } internal void EndProfiling() { _isEnabled = false; } internal IList GetData() { return _requests.ToArray(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TryCatchDesigner.xaml.cs
- TextRangeBase.cs
- SimpleBitVector32.cs
- localization.cs
- followingquery.cs
- _SecureChannel.cs
- DbParameterCollection.cs
- UnsignedPublishLicense.cs
- SchemaTableColumn.cs
- OledbConnectionStringbuilder.cs
- GACIdentityPermission.cs
- LineMetrics.cs
- SqlMethodAttribute.cs
- MsmqIntegrationReceiveParameters.cs
- util.cs
- ZoneIdentityPermission.cs
- QueryComponents.cs
- DocumentPageHost.cs
- Int32Converter.cs
- SizeFConverter.cs
- DateTimeFormat.cs
- TypeInfo.cs
- EventHandlerList.cs
- ProviderSettings.cs
- ApplicationException.cs
- SafeLibraryHandle.cs
- HybridDictionary.cs
- HttpRawResponse.cs
- ConfigXmlSignificantWhitespace.cs
- NamespaceImport.cs
- DataGridViewTopLeftHeaderCell.cs
- DefinitionUpdate.cs
- PropertyValue.cs
- DBCSCodePageEncoding.cs
- RowBinding.cs
- WindowCollection.cs
- NativeMethods.cs
- ToolStripHighContrastRenderer.cs
- CellTreeNodeVisitors.cs
- cache.cs
- SqlErrorCollection.cs
- EntityDataSourceWrapper.cs
- WebServiceResponseDesigner.cs
- DictionaryBase.cs
- TextSelectionProcessor.cs
- URLMembershipCondition.cs
- EntityDataSourceDataSelectionPanel.cs
- LogSwitch.cs
- MappingMetadataHelper.cs
- SchemaTypeEmitter.cs
- TouchEventArgs.cs
- DataListItemCollection.cs
- ListViewSelectEventArgs.cs
- ExpressionEvaluator.cs
- QueryOpeningEnumerator.cs
- AssemblyName.cs
- _FtpControlStream.cs
- AppDomainGrammarProxy.cs
- OleDbRowUpdatedEvent.cs
- ToolStripItemImageRenderEventArgs.cs
- XmlResolver.cs
- SqlDataSourceCustomCommandEditor.cs
- MarshalDirectiveException.cs
- XPathNodeHelper.cs
- GridViewDesigner.cs
- ElementNotAvailableException.cs
- ObjectDataSourceView.cs
- QueryOperatorEnumerator.cs
- SecurityResources.cs
- RegionData.cs
- SqlDataAdapter.cs
- Point4D.cs
- StaticTextPointer.cs
- BufferedGraphicsManager.cs
- WebPartDeleteVerb.cs
- ProviderUtil.cs
- Terminate.cs
- DispatcherFrame.cs
- _AcceptOverlappedAsyncResult.cs
- TagMapCollection.cs
- DataGridViewCellParsingEventArgs.cs
- OrderedDictionary.cs
- ProjectionCamera.cs
- UnhandledExceptionEventArgs.cs
- DataServiceStreamResponse.cs
- ServiceProviders.cs
- UserInitiatedNavigationPermission.cs
- SmiRecordBuffer.cs
- ListBindingConverter.cs
- WebPartHelpVerb.cs
- ByteStorage.cs
- FixedSOMGroup.cs
- PageSetupDialog.cs
- CodeRemoveEventStatement.cs
- PhysicalOps.cs
- WebPartEditorOkVerb.cs
- ComNativeDescriptor.cs
- filewebresponse.cs
- SQLUtility.cs
- TypeContext.cs