Pro .NET Performance [electronic resource] : Optimize Your C# Applications /
Goldshtein, Sasha.author.
Zurbalev, Dima.author.
Group, SELA.author.
Flatow, Ido.author.
Maximizing the performance of your algorithms and applications is extremely important and can give you a competitive advantage, a lower cost of ownership, and happier users. Pro .NET Performance explains the internals of Windows, the CLR, and the physical hardware that affect the performance of your applications, and gives you the knowledge and tools to measure how your code performs in isolation from external factors. The book is full of C# code samples and tips to help you squeeze every bit of juice from your application—lower memory utilization, consistent CPU usage, and fewer I/O operations across the network and disk. Pro .NET Performance will change the way you think about .NET application development. Guides you through performance measurement with a variety of profilers and other tools Explains how OS and CLR internals affect your application’s performance in unexpected ways Provides you with tips and real-life case studies for improving application performance.
Title Page; Copyright Page; Contents at a Glance; Table of Contents; Foreword; About the Authors; About the Technical Reviewers; Acknowledgments; Introduction; CHAPTER 1 Performance Metrics; Performance Goals; Performance Metrics; Summary; CHAPTER 2 Performance Measurement; Approaches to Performance Measurement; Built-in Windows Tools; Performance Counters; Performance Counter Logs and Alerts; Custom Performance Counters; Event Tracing for Windows (ETW); Windows Performance Toolkit (WPT); PerfMonitor; The PerfView Tool; Custom ETW Providers; Time Profilers; Visual Studio Sampling Profiler
Visual Studio Instrumentation ProfilerAdvanced Uses of Time Profilers; Sampling Tips; Collecting Additional Data While Profiling; Profiler Guidance; Advanced Profiling Customization; Allocation Profilers; Visual Studio Allocation Profiler; CLR Profiler; Memory Profilers; ANTS Memory Profiler; SciTech .NET Memory Profiler; Other Profilers; Database and Data Access Profilers; Concurrency Profilers; I/O Profilers; Microbenchmarking; Poor Microbenchmark Example; Microbenchmarking Guidelines; Summary; CHAPTER 3 Type Internals; An Example
Semantic Differences between Reference Types and Value TypesStorage, Allocation, and Deallocation; Reference Type Internals; The Method Table; Invoking Methods on Reference Type Instances; Dispatching Non-Virtual Methods; Dispatching Static and Interface Methods; Sync Blocks And The lock Keyword; Value Type Internals; Value Type Limitations; Virtual Methods on Value Types; Boxing; Avoiding Boxing on Value Types with the Equals Method; The GetHashCode Method; Best Practices for Using Value Types; Summary; CHAPTER 4 Garbage Collection; Why Garbage Collection?; Free List Management
Reference-Counting Garbage CollectionTracing Garbage Collection; Mark Phase; Local Roots; Static Roots; Other Roots; Performance Implications; Sweep and Compact Phases; Pinning; Garbage Collection Flavors; Pausing Threads for Garbage Collection; Pausing Threads during the Mark Phase; Pausing Threads during the Sweep Phase; Workstation GC; Concurrent Workstation GC; Non-Concurrent Workstation GC; Switching Between GC Flavors; Generations; Generational Model Assumptions; .NET Implementation of Generations; Generation 0; Generation 1; Generation 2; Large Object Heap
References between GenerationsBackground GC; GC Segments and Virtual Memory; Finalization; Manual Deterministic Finalization; Automatic Non-Deterministic Finalization; Pitfalls of Non-Deterministic Finalization; The Dispose Pattern; Resurrection; Weak References; Interacting with the Garbage Collector; The System.GC Class; Diagnostic Methods; Notifications; Control Methods; Interacting with the GC using CLR Hosting; GC Triggers; Garbage Collection Performance Best Practices; Generational Model; Pinning; Finalization; Miscellaneous Tips and Best Practices; Value Types; Object Graphs
Pooling Objects
Includes index.
Maximizing the performance of your algorithms and applications is extremely important and can give you a competitive advantage, a lower cost of ownership, and happier users. Pro .NET Performance explains the internals of Windows, the CLR, and the physical hardware that affect the performance of your applications, and gives you the knowledge and tools to measure how your code performs in isolation from external factors. The book is full of C# code samples and tips to help you squeeze every bit of juice from your application—lower memory utilization, consistent CPU usage, and fewer I/O operations across the network and disk. Pro .NET Performance will change the way you think about .NET application development. Guides you through performance measurement with a variety of profilers and other tools Explains how OS and CLR internals affect your application’s performance in unexpected ways Provides you with tips and real-life case studies for improving application performance.
Microsoft .NET Framework.
Microsoft software.
Microsoft .NET Framework.
Software engineering.
Microsoft and .NET.
Software Engineering/Programming and Operating Systems.