Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Shared / MS / Utility / PerfService.cs / 1305600 / PerfService.cs
//---------------------------------------------------------------------------- //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: Implements the Service class for perf diagnostics //--------------------------------------------------------------------------- using System; using System.Text; using System.Windows; using System.Collections.Generic; using Microsoft.Win32; using MS.Internal.PresentationCore; using MS.Internal; using MS.Utility; using MS.Win32.PresentationCore; using System.Reflection; namespace MS.Utility { [FriendAccessAllowed] static internal class PerfService { // Box the long to avoid JIT private static DictionaryperfElementIds = new Dictionary (); /// /// Perfservice uses this property to uniquely identfy each element in the tree. /// this ID gets traced with ETW traces and gets mapped to the element in the tool /// value is valid only if the service is running /// internal static long GetPerfElementID2(object element, string extraData) { object eltId = null; int hash = element.GetHashCode(); lock (perfElementIds) { if (!perfElementIds.TryGetValue(hash, out eltId)) { eltId = SafeNativeMethods.GetNextPerfElementId(); perfElementIds.Add(hash, eltId); // If this is the first time we see this object emit some useful info about it. if (EventTrace.IsEnabled(EventTrace.Keyword.KeywordGeneral, EventTrace.Level.Verbose)) { Type type = element.GetType(); Assembly asm = type.Assembly; EventTrace.EventProvider.TraceEvent(EventTrace.Event.PerfElementIDAssignment, EventTrace.Keyword.KeywordGeneral, EventTrace.Level.Verbose, (long)eltId, type.FullName, extraData, GetPerfElementID2(asm, asm.FullName)); } } } return (long)eltId; } internal static long GetPerfElementID(object element) { return GetPerfElementID2(element, string.Empty); } } } // 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
- MethodMessage.cs
- GlobalizationAssembly.cs
- DigitShape.cs
- SafeTokenHandle.cs
- EpmSyndicationContentSerializer.cs
- InheritanceContextHelper.cs
- CodeThrowExceptionStatement.cs
- XPathException.cs
- PixelFormats.cs
- GenericEnumConverter.cs
- FocusManager.cs
- CodeDOMUtility.cs
- ArrayElementGridEntry.cs
- TransformValueSerializer.cs
- WebPartZoneBase.cs
- CompilerWrapper.cs
- GradientBrush.cs
- GiveFeedbackEvent.cs
- FileNotFoundException.cs
- SqlFacetAttribute.cs
- LinearGradientBrush.cs
- EditorPartCollection.cs
- XhtmlBasicLiteralTextAdapter.cs
- GridViewSortEventArgs.cs
- StylusPointDescription.cs
- autovalidator.cs
- StringAnimationBase.cs
- SystemIPv4InterfaceProperties.cs
- AutoResetEvent.cs
- FixedSOMLineCollection.cs
- KeyboardNavigation.cs
- FormCollection.cs
- HttpWebRequest.cs
- UpdateProgress.cs
- OverloadGroupAttribute.cs
- ScrollProperties.cs
- EndEvent.cs
- AuthenticationService.cs
- Int32RectConverter.cs
- _DisconnectOverlappedAsyncResult.cs
- LiteralLink.cs
- ArraySegment.cs
- ValuePattern.cs
- NamedPermissionSet.cs
- ToolStripContainerActionList.cs
- CircleHotSpot.cs
- ApplicationActivator.cs
- EncoderParameter.cs
- TreeNodeStyle.cs
- XmlDocumentFragment.cs
- PartitionResolver.cs
- ValidatorCollection.cs
- HandledEventArgs.cs
- MailAddressCollection.cs
- SelectionPattern.cs
- CounterCreationDataCollection.cs
- CompModSwitches.cs
- ReferenceEqualityComparer.cs
- StructuredTypeEmitter.cs
- NewItemsContextMenuStrip.cs
- WebEventTraceProvider.cs
- SiteMapNode.cs
- WinEventHandler.cs
- AnonymousIdentificationSection.cs
- PropertyTabAttribute.cs
- LocalizableAttribute.cs
- FileEnumerator.cs
- DeviceContexts.cs
- SystemWebSectionGroup.cs
- MethodToken.cs
- OperatingSystem.cs
- BinaryMessageEncodingElement.cs
- ExtenderProviderService.cs
- Menu.cs
- ContextMenu.cs
- XmlSchemaIdentityConstraint.cs
- HttpRequestCacheValidator.cs
- FontSource.cs
- CodeAttributeDeclaration.cs
- TranslateTransform.cs
- SpeechDetectedEventArgs.cs
- UniqueConstraint.cs
- StaticExtensionConverter.cs
- SQLInt32.cs
- WpfKnownTypeInvoker.cs
- SchemaType.cs
- CompilerHelpers.cs
- ReadWriteObjectLock.cs
- FormsAuthenticationUserCollection.cs
- AxisAngleRotation3D.cs
- FixedPageAutomationPeer.cs
- UIElementPropertyUndoUnit.cs
- CheckStoreFileValidityRequest.cs
- Trace.cs
- ToolStripRendererSwitcher.cs
- RouteParametersHelper.cs
- ObjectListSelectEventArgs.cs
- BrushValueSerializer.cs
- NavigationWindowAutomationPeer.cs
- CallbackTimeoutsElement.cs