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
- AsyncOperation.cs
- SQLInt16.cs
- CodeVariableDeclarationStatement.cs
- TableNameAttribute.cs
- ProcessModelSection.cs
- StateRuntime.cs
- UserControlCodeDomTreeGenerator.cs
- DockPatternIdentifiers.cs
- RawStylusInputCustomData.cs
- TextWriterTraceListener.cs
- SHA256Managed.cs
- LastQueryOperator.cs
- FunctionOverloadResolver.cs
- Pointer.cs
- OptimalTextSource.cs
- TCPListener.cs
- WebContext.cs
- Content.cs
- FormsAuthenticationUser.cs
- OdbcEnvironmentHandle.cs
- MaskDesignerDialog.cs
- CodeIterationStatement.cs
- PersonalizableTypeEntry.cs
- WebPartHelpVerb.cs
- ImageSource.cs
- PtsHost.cs
- TableLayoutSettings.cs
- DbFunctionCommandTree.cs
- CheckBoxList.cs
- PanelStyle.cs
- ConfigurationManagerHelper.cs
- WeakReferenceEnumerator.cs
- CodeRegionDirective.cs
- ConstraintStruct.cs
- PersonalizationState.cs
- NamespaceDisplay.xaml.cs
- ViewBase.cs
- IndicShape.cs
- RoutedEventHandlerInfo.cs
- MemberPathMap.cs
- WindowsTreeView.cs
- GlyphsSerializer.cs
- _ProxyRegBlob.cs
- WeakEventManager.cs
- WorkItem.cs
- ExpressionConverter.cs
- JulianCalendar.cs
- ObjectManager.cs
- Page.cs
- NameValuePair.cs
- ReliableSessionBindingElementImporter.cs
- LinearGradientBrush.cs
- SafeRightsManagementQueryHandle.cs
- UnionCodeGroup.cs
- ManualResetEvent.cs
- DataGrid.cs
- SqlTriggerAttribute.cs
- FactoryRecord.cs
- Point3DCollectionValueSerializer.cs
- BindValidator.cs
- WindowsStreamSecurityUpgradeProvider.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- PersonalizationStateInfoCollection.cs
- AnimatedTypeHelpers.cs
- Attributes.cs
- FragmentQueryProcessor.cs
- ExceptionHelpers.cs
- MenuAutoFormat.cs
- IOException.cs
- Validator.cs
- EntityUtil.cs
- WebSysDescriptionAttribute.cs
- Regex.cs
- OleDbDataAdapter.cs
- DataGridView.cs
- dataprotectionpermissionattribute.cs
- BrowserCapabilitiesCompiler.cs
- OdbcEnvironmentHandle.cs
- TitleStyle.cs
- GroupQuery.cs
- ZoneLinkButton.cs
- SmiRequestExecutor.cs
- _CookieModule.cs
- Vector3D.cs
- XmlSchemaDatatype.cs
- CharAnimationUsingKeyFrames.cs
- Rules.cs
- HttpCacheVary.cs
- EntityConnectionStringBuilderItem.cs
- ObjectView.cs
- ContextStack.cs
- IOException.cs
- ImageListImage.cs
- TextBoxAutoCompleteSourceConverter.cs
- WebPartsSection.cs
- EntityDataSourceConfigureObjectContextPanel.cs
- Visitors.cs
- EncoderParameter.cs
- GeneralTransform3DGroup.cs
- ThreadAttributes.cs