23
CLR Fundamentals Fabricio Catae Premier Field Engineer

CLR Fundamentals: Memory Management

Embed Size (px)

Citation preview

Page 1: CLR Fundamentals: Memory Management

CLR Fundamentals

Fabricio CataePremier Field Engineer

Page 2: CLR Fundamentals: Memory Management

Win32: Isolação de Processos

Notepad.exe W3wp.exe

Page 3: CLR Fundamentals: Memory Management

CLR: Application Domain

Process.exe

AppDomain

Assembly

Assembly

Assembly

AppDomain

Assembly

Assembly

Page 4: CLR Fundamentals: Memory Management

Win32 DLL

DLL Nativa

PE Header

CodeMetadata

PE HeaderCLR Header

IL

CLR

Page 5: CLR Fundamentals: Memory Management

Gerenciamento de Memória

Garbage CollectorCleanSweepCompact

1

2

3

4

Page 6: CLR Fundamentals: Memory Management

Gerenciamento de Memória

Garbage CollectorCleanSweepCompact

1

4

Page 7: CLR Fundamentals: Memory Management

Pergunta

Managed Heap é dividia em quantas GENERATIONS?

Page 8: CLR Fundamentals: Memory Management

Alocação de Memória

1 2 3 4 5

GEN0

Page 9: CLR Fundamentals: Memory Management

Alocação de Memória

1 3 5

GEN0

Page 10: CLR Fundamentals: Memory Management

Alocação de Memória

1 3 5

GEN1 GEN0

Page 11: CLR Fundamentals: Memory Management

Alocação de Memória

1 3 5

GEN1 GEN0

6 7 8

Page 12: CLR Fundamentals: Memory Management

Alocação de Memória

1 3

GEN1 GEN0

6

Page 13: CLR Fundamentals: Memory Management

Alocação de Memória

1 3

GEN2 GEN0

6

GEN1

Page 14: CLR Fundamentals: Memory Management

Alocação de Memória

1 3

GEN2 GEN0

6

GEN1

8 9

Page 15: CLR Fundamentals: Memory Management

Alocação de Memória

1 3

GEN2 GEN0

6

GEN1

8 9

Page 16: CLR Fundamentals: Memory Management

Alocação de Memória

1 3

GEN2 GEN0

6

GEN1

8 9 10

Page 17: CLR Fundamentals: Memory Management

Monitoração

Heap (GEN 0 / GEN 1 / GEN 2)

Large Object Heap

Tempo de Garbage Collector (GC Time)

Page 18: CLR Fundamentals: Memory Management

Performance Monitor

Page 19: CLR Fundamentals: Memory Management

Hierarquia

Process.exe

AppDomain

AssemblyModule

MethodTableMethodDescriptor

Page 20: CLR Fundamentals: Memory Management

DumpHeap

Page 21: CLR Fundamentals: Memory Management

Unmanaged Resources

Process.exe

AppDomain

Assembly

Assembly

Assembly

File Handle

TCP Socket

Page 22: CLR Fundamentals: Memory Management

IDisposable

Método determinístico de limpeza de Unmanaged Resources

Dispose()

SupressFinalizer()

Page 23: CLR Fundamentals: Memory Management

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after

the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.