рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдмрдВрдзрд┐рдд рдХреЛрдб рдкрд░ рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╣рдореЗрд╢рд╛ рдЗрд╕ рдмрд╛рдд рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ: рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдХрд┐рддрдиреЗ рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реЛрддрд╛ рд╣реИ? рдФрд░ рд╕реАрдПрд▓рдЖрд░ рдореЗрдВ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХрд╛ рдЖрдХрд╛рд░ рд╕реАрдорд╛ рдХреНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ 32-рдмрд┐рдЯ рдФрд░ 64-рдмрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмреАрдЪ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдореЗрдВ рдХреЛрдИ рдЕрдВрддрд░ рд╣реИ? рдпрджрд┐ рдпреЗ рдкреНрд░рд╢реНрди рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдХ рдЦрд╛рд▓реА рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛, рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗред
рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ .NET рдореЗрдВ 2 рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВ:
рдореВрд▓реНрдп рдкреНрд░рдХрд╛рд░ рдФрд░
рд╕рдВрджрд░реНрдн рдкреНрд░рдХрд╛рд░ , рдЬреЛ рдХреНрд░рдорд╢рдГ рд╕реНрдЯреИрдХ рдФрд░ рд╣реАрдк (рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд) рдкрд░ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдореВрд▓реНрдп рдкреНрд░рдХрд╛рд░ рд╕рд░рд▓ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдпрд╣ рдПрдХ рд╕рдВрдЦреНрдпрд╛, рдПрдХ рдЪрд░рд┐рддреНрд░ рд╣реИред рдХрд┐рд╕реА рд╡реИрд░рд┐рдПрдмрд▓ рдкрд░ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╕рдордп, рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝реАрд▓реНрдб рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред рд╕рд╛рде рд╣реА, рдРрд╕реА рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЬреАрд╡рдирдХрд╛рд▓ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдореВрд▓реНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЖрдпрд╛рдо рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рдЗрдирдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
CTS рдкреНрд░рдХрд╛рд░ | рдмрд╛рдЗрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ |
System.Byte | 1 |
System.SByte | 1 |
System.Int16 | 2 |
System.Int32 | 4 |
System.Int64 | 8 |
System.UInt16 | 2 |
System.UInt32 | 4 |
System.UInt64 | 8 |
System.Single | 4 |
System.Double | 8 |
System.Char | 2 |
System.Decimal | 16 |
рд╕рдВрджрд░реНрдн рдкреНрд░рдХрд╛рд░, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдПрдХ рдвреЗрд░ рдкрд░ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рдЙрджрд╛рд╣рд░рдг рджреНрд╡рд╛рд░рд╛ рдХрдмреНрдЬрд╛ рдХреА рдЧрдИ рд╕реНрдореГрддрд┐ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рд╕рдВрджрд░реНрдн рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реАрдПрд▓рдЖрд░ рд╡рд╕реНрддреБрдУрдВ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рд╣реИ:

рдЪрд░ рд╕рдВрджрд░реНрдн рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд-рдЖрдХрд╛рд░ рдХрд╛ рдореВрд▓реНрдп (4 рдмрд╛рдЗрдЯреНрд╕, рдЯрд╛рдЗрдк DWORD) рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдирд┐рдпрдорд┐рдд рд╣реАрдк рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рд╡рд╕реНрддреБ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдкрддрд╛ рд╣реЛрддрд╛ рд╣реИ (рдмрдбрд╝реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реАрдк, рд╣рд╛рдИрдлреНрд░рд┐рдХреНрд╡реЗрдВрд╕реАрд╣рд╛рдЗрдк рдЖрджрд┐) рд╕реНрдЯреИрдХ рдкрд░ рдзрдХреЗрд▓ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдЙрди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред )ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, C ++ рдореЗрдВ, рдЗрд╕ рдорд╛рди рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдкреЙрдЗрдВрдЯрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ .NET рджреБрдирд┐рдпрд╛ рдореЗрдВ, рдЗрд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдВрджрд░реНрдн рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рд╕рд┐рдВрдХрдмреНрд▓реЙрдХ рдХрд╛ рдореВрд▓реНрдп рд╢реВрдиреНрдп рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╣реИрд╢ рдХреЛрдб SyncBlock (GetHashCode рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп), рдпрд╛
рд╕рд┐рдВрдХрдмреНрд▓реЙрдХ рд░рд┐рдХреЙрд░реНрдб
рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЗрдбрд░ рдореЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдбрд╛рд▓рддрд╛ рд╣реИ (
рд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдпрд╛ рд╕реАрдзреЗ
рдореЙрдирд┐рдЯрд░ редEterter )ред
рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдкрдирд╛ MethodTable рд╣реИ, рдФрд░ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рднреА рдЙрджрд╛рд╣рд░рдг рдПрдХ рд╣реА MethodTable рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рддрд╛рд▓рд┐рдХрд╛ рд╕реНрд╡рдпрдВ рдкреНрд░рдХрд╛рд░ (рдЗрдВрдЯрд░рдлрд╝реЗрд╕, рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ, рдЖрджрд┐) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИред
рд░реЗрдлрд░реЗрдВрд╕ рдЯрд╛рдЗрдк рдкреЙрдЗрдВрдЯрд░ - рдСрдлрд╕реЗрдЯ 4 рдХреЗ рд╕рд╛рде рд╕реНрдЯреИрдХ рдкрд░ рд░рдЦреЗ рдЧрдП рд╡реИрд░рд┐рдПрдмрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдВрджрд░реНрднред
рдмрд╛рдХреА рд╡рд░реНрдЧ рдХреНрд╖реЗрддреНрд░ рд╣реИрдВред
рдореБрд╕реАрдмрдд рдХрд╛ рдЗрд╢рд╛рд░рд╛
рд╣рдо рд╕рд┐рджреНрдзрд╛рдВрдд рд╕реЗ рдЕрднреНрдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдорд╛рдирдХ рд╕реАрдПрд▓рдЖрд░ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХрд╛ рдЖрдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рд╣рд╛рдВ, C # рдореЗрдВ рдПрдХ
рдЖрдХрд╛рд░ рдХрд╛ рдСрдкрд░реЗрдЯрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЕрдкреНрд░рдмрдВрдзрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЖрдХрд╛рд░, рд╕рд╛рде рд╣реА рд╕рд╛рде рдореВрд▓реНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реИред рд╕рдВрджрд░реНрдн рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ - рдмреЗрдХрд╛рд░ рд╣реИред
рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рджреГрд╢реНрдп рд╕реНрдЯреВрдбрд┐рдпреЛ рдбреАрдмрдЧрд░ -
рдПрд╕рдУрдПрд╕ (рд╕реНрдЯреНрд░рд╛рдЗрдХ рдХрд╛ рдмреЗрдЯрд╛) рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИред
рдЖрд░рдВрдн рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЕрдирд╡рд╛рдВрдЯреЗрдб рдХреЛрдб рдбреАрдмрдЧрд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдПрд╕рдУрдПрд╕ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рд╡реАрдПрд╕> рдбрд┐рдмрдЧ> рд╡рд┐рдВрдбреЛрдЬ> рддрддреНрдХрд╛рд▓ рд╡рд┐рдВрдбреЛ рдЦреЛрд▓реЗрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджрд░реНрдЬ рдХрд░реЗрдВ:
.load sos.dll
рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдо рдЗрд╕рдХрд╛ рд╕рдлрд▓ рдбрд╛рдЙрдирд▓реЛрдб рджреЗрдЦреЗрдВрдЧреЗ:

рдПрд╕рдУрдПрд╕ рдХреЗ рдкрд╛рд╕ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЯреАрдореЗрдВ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреЗрд╡рд▓ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
- ! DumpStackObjects (! DSO) - рд╡рд░реНрддрдорд╛рди рд╕реНрдЯреИрдХ рдХреЗ рднреАрддрд░ рдкрддрд╛ рдЪрд▓рд╛ рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ
- ! DumpObj (! DO) - рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрддреЗ рдкрд░ рд╡рд╕реНрддреБ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ
- ! ObjSize - рд╡рд╕реНрддреБ рдХрд╛ рдкреВрд░реНрдг рдЖрдХрд╛рд░ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рд╣рдо рдЗрд╕рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ
рдЯрд╛рдЗрдк рдХрд░рдХреЗ рдЕрдиреНрдп рдХрдорд╛рдВрдб рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ
! рдорджрджрдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╕рд░рд▓ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди
рдмрдирд╛рдПрдВрдЧреЗ рдФрд░
MyExampleClass рдХреНрд▓рд╛рд╕
рд▓рд┐рдЦреЗрдВрдЧреЗ :
class MyExampleClass { byte ByteValue = 255;
рдПрдХ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рд▓реЗрдВ рдФрд░ рдХрдХреНрд╖рд╛ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорд╛рдирд┐рдд рдЖрдХрд╛рд░ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ - рдЕрднреА рдХреЗ рд▓рд┐рдП, 64 рдмрд╛рдЗрдЯреНрд╕ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдпрд╛рдж рд░рдЦреЗрдВ? рддреЛ рдЕрдВрддрд┐рдо рдЖрдХрд╛рд░ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛:
рд╕реАрдПрд▓рдЖрд░ рдСрдмреНрдЬреЗрдХреНрдЯ = рд╕рд┐рдВрдХрдмреНрд▓реЙрдХ (4) + рдЯрд╛рдЗрдкрд╣реИрдВрдбрд▓ (4) + рдлреАрд▓реНрдбреНрд╕ (64) = 72
рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:
class Program { static void Main(string[] args) { var myObject = new MyExampleClass(); Console.ReadKey();
рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ (F5) рдЪрд▓рд╛рдПрдВред
рддрддреНрдХрд╛рд▓ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░реЗрдВ:
.load sos.dll
!DSO

рдКрдкрд░ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ,
myObject рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдкрддрд╛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░реЗрдВрдЧреЗред "рдХрдорд╛рдВрдб:"

рдЦреИрд░,
myObject рдХрд╛ рдЖрдХрд╛рд░ 72 рдмрд╛рдЗрдЯреНрд╕ рд╣реИред рд╣реИ рдирд╛?
рдЬрд╡рд╛рдм рд╣реИ рдирд╣реАрдВред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЖрдХрд╛рд░ рдЬреЛрдбрд╝рдирд╛ рднреВрд▓ рдЧрдПред рдЗрд╕рдХрд╛ 4 рдмрд╛рдЗрдЯреНрд╕ рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрджрд░реНрдн рд╣реИред рдФрд░ рдпрд╣рд╛рдВ рд╣рдо рдЕрдм рд╕рд╣реА рдЖрдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗред
рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ!

рддреЛ
myObject рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрдХрд╛рд░ 100 рдмрд╛рдЗрдЯреНрд╕ рд╣реИред
рдЕрддрд┐рд░рд┐рдХреНрдд 28 рдмрд╛рдЗрдЯреНрд╕ StringValue рдЪрд░ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдо рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
StringValue 01b8c008 рдЪрд░ рдХреЗ рдкрддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

System.String рдХрд╛ рдЖрдХрд╛рд░ рдХреНрдпрд╛ рд╣реИ?
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕реАрдЯреАрдПрд╕ рдореЗрдВ, рд╡рд░реНрдг (рдкреНрд░рдХрд╛рд░
System.Char ) рдХреЛ рдпреВрдирд┐рдХреЛрдб рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ 2 рдмрд╛рдЗрдЯреНрд╕ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рджреВрд╕рд░реЗ, рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд░реНрдгреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП StringValue рдореЗрдВ рд╣рдордиреЗ рдореВрд▓реНрдп "рд╕реНрдЯреНрд░рд┐рдВрдЧ" рд▓рд┐рдЦрд╛, рдЬреЛ 12 рдмрд╛рдЗрдЯреНрд╕ рд╣реИред
рддреАрд╕рд░рд╛, System.String рдПрдХ рд╕рдВрджрд░реНрдн рдкреНрд░рдХрд╛рд░ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ GC Heap рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ SyncBlock, TypeHandle, Reference point + рд╡рд░реНрдЧ рдХреЗ рдЕрдиреНрдп рдХреНрд╖реЗрддреНрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗред рд╕рдВрджрд░реНрдн рдмрд┐рдВрджреБ рдХреЛ рдпрд╣рд╛рдВ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд░реНрдЧ
MyExampleClass (рд╕рдВрджрд░реНрдн 4 рдмрд╛рдЗрдЯреНрд╕) рдореЗрдВ рдЧрд┐рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЪреМрдерд╛, System.String рдХреА рд╕рдВрд░рдЪрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд░реНрдЧ рдлрд╝реАрд▓реНрдб Int_ рдкреНрд░рдХрд╛рд░ рдХреЗ рдбрд╛рдпрдирд╛рдорд┐рдХ рд╡реИрд░рд┐рдПрдмрд▓ рд╣реЛрддреЗ рд╣реИрдВ Int32 (4 рдмрд╛рдЗрдЯреНрд╕), m_firstChar рдХрд╛ рдкреНрд░рдХрд╛рд░ рдЪрд╛рд░ (2 рдмрд╛рдЗрдЯ), рдЦрд╛рд▓реА рдЪрд░ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдЦрд╛рд▓реА рд╕реНрдерд┐рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИред
рдкрд╣рд▓реЗ рдХреА рдЧрдгрдирд╛ 28 рдХреЗ рдмрдЬрд╛рдп 26 рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рднреА рдзреНрдпрд╛рди рджреЗрдВред рдпрд╣ рд╕рдм рдПрдХ рд╕рд╛рде рд░рдЦреЛ:
StringValue = SyncBlock (4) + рдЯрд╛рдЗрдкрд╣реИрдВрдбрд▓ (4) + m_stringLength (4) + m_firstChar (2) + "рд╕реНрдЯреНрд░рд┐рдВрдЧ" (12) = 26
рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд 2 рдмрд╛рдЗрдЯреНрд╕ рд╕реАрдПрд▓рдЖрд░ рдореЗрдореЛрд░реА рдореИрдиреЗрдЬрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рд╕рдВрд░реЗрдЦрдг рдХреЗ рдХрд╛рд░рдг рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред
x86 рдмрдирд╛рдо 64
рдореБрдЦреНрдп рдЕрдВрддрд░ DWORD рдХрд╛ рдЖрдХрд╛рд░ рд╣реИ - рдореЗрдореЛрд░реА рдкреЙрдЗрдВрдЯрд░ред 32-рдмрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рдкрд░, рдпрд╣ 4 рдмрд╛рдЗрдЯреНрд╕ рд╣реИ, 64-рдмрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 8 рдмрд╛рдЗрдЯреНрд╕ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ x86 рдореЗрдВ рдПрдХ рдЦрд╛рд▓реА рд╡рд░реНрдЧ рдХреЗрд╡рд▓ 12 рдмрд╛рдЗрдЯреНрд╕ рд╣реИ, рддреЛ x64 рдореЗрдВ 24 рдмрд╛рдЗрдЯреНрд╕ рд╣реИрдВред
рд╕реАрдПрд▓рдЖрд░ рд╡рд╕реНрддреБ рдХрд╛ рдЖрдХрд╛рд░ рд╕реАрдорд╛
рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ System.String рдХрд╛ рдЖрдХрд╛рд░ рдХреЗрд╡рд▓ рдЙрдкрд▓рдмреНрдз рд╕рд┐рд╕реНрдЯрдо рдореЗрдореЛрд░реА рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХреЛрдИ рднреА рдЙрджрд╛рд╣рд░рдг 2 Gb рд╕реЗ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдкрд░ рдХрдмреНрдЬрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдпрд╣ рд╕реАрдорд╛ x86 рдФрд░ x64 рджреЛрдиреЛрдВ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИред
рддреЛ, рд╕реВрдЪреА, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдореЗрдВ рдПрдХ
LongCount () рд╡рд┐рдзрд┐ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм 2 ^ 64 рд╡рд╕реНрддреБрдУрдВ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП BigArray рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдВрддрднрд╛рд╖рдг
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рд╕реАрдПрд▓рдЖрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рдореБрджреНрджреЗ рдкрд░ рд╕рдВрдкрд░реНрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдмреЗрд╢рдХ, рд╡рд┐рд╢реЗрд╖рдХрд░ рдХреЗ рд╕рд╛рде, рдиреБрдХрд╕рд╛рди рд╣реЛ рд░рд╣реЗ рд╣реИрдВ! ObjSize рдЯреАрдо, рдЬрдм рдЖрдВрддрд░рд┐рдХ рддрд╛рд░реЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдХрд╛рд░рдг рджреЛрд╣рд░реА рдЧрд┐рдирддреА рд╣реЛ рд╕рдХрддреА рд╣реИред
рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рд╕рд╡рд╛рд▓, рдЙрдирдХреА рд╕реНрдореГрддрд┐ рдореЗрдВ рд╕рдВрд░реЗрдЦрдг рддрднреА рдЖрддрд╛ рд╣реИ рдЬрдм рдПрдХ рдордЬрдмреВрдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ - рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд▓реЗрдЦ рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдЙрдкрдпреЛрдЧреА рдирд┐рдХрд▓рд╛ред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ