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
- Timer.cs
- SiblingIterators.cs
- Floater.cs
- SymmetricKeyWrap.cs
- ImageButton.cs
- TransactionScope.cs
- SchemaElement.cs
- DefaultPropertyAttribute.cs
- PriorityRange.cs
- messageonlyhwndwrapper.cs
- NullRuntimeConfig.cs
- ControlUtil.cs
- PropertyTabChangedEvent.cs
- PrimarySelectionGlyph.cs
- ProcessDesigner.cs
- GACIdentityPermission.cs
- TextTreeTextNode.cs
- GenericTypeParameterBuilder.cs
- Win32Exception.cs
- SecurityElement.cs
- EncodingNLS.cs
- ResourceExpressionEditor.cs
- ValidationPropertyAttribute.cs
- RoleGroupCollection.cs
- SQLDouble.cs
- ProgressiveCrcCalculatingStream.cs
- CheckBox.cs
- SuppressMergeCheckAttribute.cs
- InputGestureCollection.cs
- AgileSafeNativeMemoryHandle.cs
- MailBnfHelper.cs
- BasicHttpBinding.cs
- BindingsCollection.cs
- _AuthenticationState.cs
- QueryExpression.cs
- DiagnosticsConfiguration.cs
- XmlComplianceUtil.cs
- PropertyDescriptorComparer.cs
- HMACSHA384.cs
- RequiredArgumentAttribute.cs
- SiteMapNode.cs
- PageThemeBuildProvider.cs
- RectAnimationBase.cs
- SByte.cs
- GenericIdentity.cs
- ApplicationCommands.cs
- DoubleLink.cs
- AssociationType.cs
- HttpPostClientProtocol.cs
- ProgressBarRenderer.cs
- TextOptionsInternal.cs
- SeverityFilter.cs
- ListenerElementsCollection.cs
- ToolStripRenderEventArgs.cs
- UnsafeNativeMethodsMilCoreApi.cs
- RawStylusActions.cs
- CodeCastExpression.cs
- Version.cs
- PathFigureCollection.cs
- EdmEntityTypeAttribute.cs
- SplitterEvent.cs
- CodeEventReferenceExpression.cs
- StringSorter.cs
- FontConverter.cs
- XhtmlTextWriter.cs
- NativeMethods.cs
- AstNode.cs
- TypeElementCollection.cs
- DataDocumentXPathNavigator.cs
- WindowProviderWrapper.cs
- VerticalAlignConverter.cs
- AddValidationError.cs
- ProviderIncompatibleException.cs
- TypeForwardedToAttribute.cs
- BuildResultCache.cs
- Page.cs
- EntityModelBuildProvider.cs
- Icon.cs
- ZipIOModeEnforcingStream.cs
- __Filters.cs
- WindowsIdentity.cs
- GenericTextProperties.cs
- RecordConverter.cs
- XMLUtil.cs
- NegotiateStream.cs
- DataBindingList.cs
- Boolean.cs
- AddingNewEventArgs.cs
- Attribute.cs
- AttachmentCollection.cs
- XmlSchemaRedefine.cs
- UnauthorizedWebPart.cs
- XmlTextEncoder.cs
- RegistryKey.cs
- MemoryMappedViewStream.cs
- Properties.cs
- AnnotationStore.cs
- IdentityReference.cs
- ValidationErrorEventArgs.cs
- ZipFileInfo.cs