Cargando…

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...

Descripción completa

Detalles Bibliográficos
Clasificación:Libro Electrónico
Autor principal: Kokosa, Konrad (Autor)
Formato: Electrónico eBook
Idioma:Inglés
Publicado: New York : Apress, [2018]
Temas:
Acceso en línea:Texto completo (Requiere registro previo con correo institucional)
Tabla de Contenidos:
  • 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.
  • 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.
  • 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.
  • 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.
  • .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.