Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------------------- //// 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
- UnorderedHashRepartitionStream.cs
- AndCondition.cs
- ImageButton.cs
- ToolStripSystemRenderer.cs
- Viewport2DVisual3D.cs
- StatusBarDrawItemEvent.cs
- HtmlToClrEventProxy.cs
- XmlLanguageConverter.cs
- safemediahandle.cs
- OdbcCommandBuilder.cs
- XmlElementCollection.cs
- FileSystemInfo.cs
- InstanceNameConverter.cs
- TagPrefixCollection.cs
- PathGradientBrush.cs
- ServiceMemoryGates.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- UserControl.cs
- SubqueryRules.cs
- GroupBoxAutomationPeer.cs
- ThreadSafeList.cs
- XmlUnspecifiedAttribute.cs
- FileDialog.cs
- ScriptControlManager.cs
- ServerIdentity.cs
- RoutingEndpointTrait.cs
- BuildProviderUtils.cs
- WindowsFormsLinkLabel.cs
- PageBorderless.cs
- Nullable.cs
- RegistryExceptionHelper.cs
- WebPartActionVerb.cs
- RestrictedTransactionalPackage.cs
- Utils.cs
- TextClipboardData.cs
- arclist.cs
- AudioStateChangedEventArgs.cs
- ProtocolViolationException.cs
- ObfuscateAssemblyAttribute.cs
- DataGridViewCellFormattingEventArgs.cs
- HitTestFilterBehavior.cs
- SimpleBitVector32.cs
- Environment.cs
- ClientConfigurationHost.cs
- OletxCommittableTransaction.cs
- Transactions.cs
- IisTraceListener.cs
- DoubleLinkListEnumerator.cs
- SoapObjectWriter.cs
- StrictModeSecurityHeaderElementInferenceEngine.cs
- PreparingEnlistment.cs
- CustomCategoryAttribute.cs
- Int32AnimationUsingKeyFrames.cs
- Propagator.cs
- Assert.cs
- DrawingVisualDrawingContext.cs
- DynamicQueryableWrapper.cs
- AxHost.cs
- HTMLTextWriter.cs
- SqlCacheDependencySection.cs
- UpdateEventArgs.cs
- AddingNewEventArgs.cs
- WebPartManager.cs
- XmlRootAttribute.cs
- UserNameSecurityTokenProvider.cs
- cache.cs
- Setter.cs
- BaseTemplateBuildProvider.cs
- TextEditorMouse.cs
- CompositeFontFamily.cs
- ProgressBar.cs
- AtomMaterializer.cs
- TreeNode.cs
- QilName.cs
- RemoveStoryboard.cs
- EntityContainerRelationshipSet.cs
- AssemblyAttributesGoHere.cs
- TCPListener.cs
- Blend.cs
- ObjectSecurity.cs
- BatchStream.cs
- elementinformation.cs
- ConfigXmlCDataSection.cs
- DrawingAttributes.cs
- SafeViewOfFileHandle.cs
- BitArray.cs
- CheckBox.cs
- SiteMapPath.cs
- SessionStateContainer.cs
- XmlBinaryReader.cs
- XPathCompileException.cs
- VisualStateChangedEventArgs.cs
- CancellationHandler.cs
- ISFClipboardData.cs
- SystemColors.cs
- SQLConvert.cs
- WebPartExportVerb.cs
- StringReader.cs
- WorkflowCommandExtensionItem.cs
- X509CertificateCollection.cs