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
- DataRowComparer.cs
- InstanceNormalEvent.cs
- SubstitutionResponseElement.cs
- HScrollBar.cs
- ValidatingReaderNodeData.cs
- RectConverter.cs
- WebPartCloseVerb.cs
- LazyTextWriterCreator.cs
- PackageDigitalSignature.cs
- DbProviderConfigurationHandler.cs
- LabelDesigner.cs
- UITypeEditors.cs
- rsa.cs
- PlaceHolder.cs
- DnsEndPoint.cs
- DataGridViewCellStyleContentChangedEventArgs.cs
- Helper.cs
- ChtmlCalendarAdapter.cs
- COM2ExtendedTypeConverter.cs
- ChangeTracker.cs
- FunctionParameter.cs
- AssociationProvider.cs
- GacUtil.cs
- TreeViewImageKeyConverter.cs
- XPathDocumentBuilder.cs
- Cast.cs
- ResourceDictionaryCollection.cs
- CaseStatement.cs
- ExpressionVisitorHelpers.cs
- _SpnDictionary.cs
- FixedDocumentSequencePaginator.cs
- ISessionStateStore.cs
- SchemaLookupTable.cs
- OledbConnectionStringbuilder.cs
- UnsafeNativeMethods.cs
- KeyedCollection.cs
- CheckBox.cs
- TraceHandler.cs
- XPathParser.cs
- PointAnimationUsingKeyFrames.cs
- TypeBrowserDialog.cs
- PopupRootAutomationPeer.cs
- BaseCollection.cs
- WindowsFormsHelpers.cs
- IdSpace.cs
- DataGridViewHeaderCell.cs
- XmlObjectSerializerContext.cs
- RequestCache.cs
- ParameterRetriever.cs
- DocumentAutomationPeer.cs
- FrameDimension.cs
- CultureSpecificStringDictionary.cs
- ConnectionStringSettings.cs
- SqlClientMetaDataCollectionNames.cs
- QueryResponse.cs
- XPathSingletonIterator.cs
- ApplyHostConfigurationBehavior.cs
- InkCanvasSelection.cs
- MarkerProperties.cs
- SiteMembershipCondition.cs
- ImageAttributes.cs
- FixedTextContainer.cs
- baseaxisquery.cs
- TableSectionStyle.cs
- DesignColumn.cs
- EdgeModeValidation.cs
- TimeIntervalCollection.cs
- MethodCallConverter.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- FileStream.cs
- MimeAnyImporter.cs
- DispatcherExceptionFilterEventArgs.cs
- ArrangedElement.cs
- EventlogProvider.cs
- MenuItemBinding.cs
- smtpconnection.cs
- DragDeltaEventArgs.cs
- DecimalConverter.cs
- DSACryptoServiceProvider.cs
- FormsAuthenticationTicket.cs
- WebBrowserPermission.cs
- Debugger.cs
- Model3DGroup.cs
- FilteredSchemaElementLookUpTable.cs
- TextContainerChangedEventArgs.cs
- ProgressBarAutomationPeer.cs
- SelectionUIService.cs
- AutomationProperties.cs
- FixedTextView.cs
- DecoderNLS.cs
- HttpHandlerActionCollection.cs
- ListViewUpdatedEventArgs.cs
- OdbcParameterCollection.cs
- PackagePart.cs
- Win32KeyboardDevice.cs
- _Events.cs
- SpinLock.cs
- HwndMouseInputProvider.cs
- CustomWebEventKey.cs
- ShaperBuffers.cs