Pro .NET Memory Management For Better Code, Performance, and Scalability

Understand .NET memory management internal workings, pitfalls, and techniques in order to effectively avoid a wide range of performance and scalability problems in your software. Despite automatic memory management in .NET, there are many advantages to be found in understanding how .NET memory works...

Full description

Bibliographic Details
Main Author: Kokosa, Konrad
Format: eBook
Language:English
Published: New York Apress 2018
Subjects:
Online Access:
Collection: O'Reilly - Collection details see MPG.ReNa
LEADER 06859nmm a2200589 u 4500
001 EB001941384
003 EBX01000000000000001104286
005 00000000000000.0
007 cr|||||||||||||||||||||
008 210123 ||| eng
020 |a 9781484240274 
050 4 |a QA76.9.M45 
100 1 |a Kokosa, Konrad 
245 0 0 |a Pro .NET Memory Management  |b For Better Code, Performance, and Scalability  |c Konrad Kokosa 
260 |a New York  |b Apress  |c 2018 
300 |a 1 online resource 
505 0 |a .NET Versions.NET Internals; Sample Program in Depth; Assemblies and Application Domains; Collectible Assemblies; Process Memory Regions; Scenario 4-1. How Big Is My Program in Memory?; Scenario 4-2. My Program's Memory Usage Keeps Growing; Scenario 4-3. My Program's Memory Usage Keeps Growing; Scenario 4-4. My Program's Memory Usage Keeps Growing; Type System; Type Categories; Type Storage; Value Types; Value Types Storage; Structs; Structs in General; Structs Storage; Reference Types; Classes; Strings; String Interning; Scenario 4-5. My Program's Memory Usage Is Too Big; Boxing and Unboxing 
505 0 |a Rule 3 -- Improve Spatial and Temporal Data LocalityRule 4 -- Consume More Advanced Possibilities; Chapter 3: Memory Measurements; Measure Early; Overhead and Invasiveness; Sampling vs. Tracing; Call Tree; Objects Graphs; Statistics; Latency vs. Throughput; Memory Dumps, Tracing, Live Debugging; Windows Environment; Overview; VMMap; Performance Counters; Event Tracing for Windows; Windows Performance Toolkit; Windows Performance Recorder; Windows Performance Analyzer; Opening File and Configur ation; Generic Events; Region of Interests; Flame Charts; Stack Tags; Custom Graphs; Profiles 
505 0 |a Chapter 2: Low-Level Memory ManagementHardware; Memory; CPU; CPU Cache; Cache Hit and Miss; Data Locality; Cache Implementation; Data Alignment; Non-temporal Access; Prefetching; Hierarchical Cache; Multicore Hierarchical Cache; Operating System; Virtual Memory; Large Pages; Virtual Memory Fragmentation; General Memory Layout; Windows Memory Management; Windows Memory Layout; Linux Memory Management; Linux Memory Layout; Operating System Influence; NUMA and CPU Groups; Summary; Rule 2 -- Random Access Should Be Avoided, Sequential Access Should Be Encouraged 
505 0 |a PerfViewData Collection; Data Analysis; Memory Snapshots; ProcDump, DebugDiag; WinDbg; Disassemblers and Decompilers; BenchmarkDotNet; Commercial Tools; Visual Studio; Scitech .NET Memory Profiler; JetBrains DotMemory; RedGate ANTS Memory Profiler; Intel VTune Amplifier and AMD CodeAnalyst Performance Analyzer; Dynatrace and AppDynamics; Linux Environment; Overview; Perfcollect; Trace Compass; Opening File; CoreCLR. GC.collections; CoreCLR.threads.state; CoreCLR. GC.generations.ranges; The Final Results; Memory Dumps; Summary; Rule 5 -- Measure GC Early; Chapter 4: .NET Fundamentals 
505 0 |a Intro; Table of Contents; About the Author; About the Technical Reviewers; Acknowledgments; Foreword; Introduction; Chapter 1: Basic Concepts; Memory-Related Terms; The Static Allocation; The Register Machine; The Stack; The Stack Machine; The Pointer; The Heap; Manual Memory Management; Automatic Memory Management; Allocator, Mutator, and Collector; The Mutator; The Allocator; The Collector; Reference Counting; Tracking Collector; Mark Phase; Conservative Garbage Collector; Precise Garbage Collector; Collect Phase; Sweep; Compact; Small History; Summary; Rule 1 -- Educate Yourself 
653 |a Microsoft .NET Framework / http://id.loc.gov/authorities/names/n2017043838 
653 |a Programming & scripting languages: general / bicssc 
653 |a Microsoft programming / bicssc 
653 |a Storage media & peripherals / bicssc 
653 |a Microsoft .NET Framework / fast 
653 |a Application software / http://id.loc.gov/authorities/subjects/sh90001980 
653 |a COMPUTERS / Software Development & Engineering / General / bisacsh 
653 |a Logiciels d'application 
653 |a Memory management (Computer science) / fast 
653 |a Application software / fast 
653 |a Gestion mémoire (Informatique) 
653 |a Software Engineering / bicssc 
653 |a Memory management (Computer science) / http://id.loc.gov/authorities/subjects/sh90003066 
041 0 7 |a eng  |2 ISO 639-2 
989 |b OREILLY  |a O'Reilly 
500 |a Includes index 
028 5 0 |a 10.1007/978-1-4842-4027-4 
015 |a GBB902153 
776 |z 1484240278 
776 |z 9781484240267 
776 |z 148424026X 
776 |z 9781484240274 
856 4 0 |u https://learning.oreilly.com/library/view/~/9781484240274/?ar  |x Verlag  |3 Volltext 
082 0 |a 331 
082 0 |a 658 
082 0 |a 005.43 
082 0 |a 500 
082 0 |a 620 
520 |a Understand .NET memory management internal workings, pitfalls, and techniques in order to effectively avoid a wide range of performance and scalability problems in your software. Despite automatic memory management in .NET, there are many advantages to be found in understanding how .NET memory works and how you can best write software that interacts with it efficiently and effectively. Pro .NET Memory Management is your comprehensive guide to writing better software by understanding and working with memory management in .NET.  
520 |a What You'll Learn: Understand the theoretical underpinnings of automatic memory management Take a deep dive into every aspect of .NET memory management, including detailed coverage of garbage collection (GC) implementation, that would otherwise take years of experience to acquire Get practical advice on how this knowledge can be applied in real-world software development Use practical knowledge of tools related to .NET memory management to diagnose various memory-related issues Explore various aspects of advanced memory management, including use of Span and Memory types This book is for .NET developers, solution architects, and performance engineers. Thoroughly vetted by the .NET Team at Microsoft, this book contains 25 valuable troubleshooting scenarios designed to help diagnose challenging memory problems.  
520 |a Readers will also benefit from a multitude of .NET memory management "rules" to live by that introduce methods for writing memory-aware code and the means for avoiding common, destructive pitfalls. Konrad Kokosa is an experienced software designer, developer, and Microsoft MVP specializing in Microsoft technologies, but curious about everything else. A programmer for more than a decade, he has a passion for solving performance problems, speeding up applications, and resolving all types of architectural puzzles in .NET. Konrad is an independent consultant, and an active member of the community, blogging, speaking, and training. He is co-founder of Dotnetos.org