Информация об изменениях

Сообщение Re[13]: 32 bit от 15.03.2023 2:12

Изменено 15.03.2023 3:10 Философ

Re[13]: 32 bit
Здравствуйте, rudzuk, Вы писали:

R>А ты сам не видишь дичь в результатах своих замеров? 64-битный код с треском сливает 32-битному, работая в родном для себя режиме. И это объясняется тем, что процессор, оказывается, не так прост. фасепальм.


Во-первых я заглядывал в дизасм, в то, что получилось после джиттера. Во-вторых, я знаю что команды в современном x86 — это не инструкции. Сегодня x86 имеет RISC ядро, и сами команды декодирует в микрооперации, которые потом исполняте гипер-конвеер. Гипер-конвеерная архитектура появилаесь ещё в Pentium-4, а переупорядочивание команд в конвеере появилось ещё раньше аж в Pentium Pro, читать вот здесь.
Если ты посмотришь на модную штучку времён Core 2Duo ( Wide Dyanamic Execution) то увидишь там более 1 ALU.
В сочетании с переупорядочиванием инструкций (Out of order execution), то должен бы перестать удивлять тому, что частенько 2 команды выполняются дольше чем 5. Я этому удивляться перестал много лет назад, когда экспериментировал с командами процессора: у меня частенько rdtsc мерял 0 тактов на команду. Потом я открыл для себя fence-операции, в частности full-fence (примерно тогда уже узнал зачем нужен барьер памяти).

Понимаешь, нельзя сказать, сколько тактов займёт условный inc qword ptr [r15] и не получится его просто так сравнить с кодом аналогичного назначения для 32-бит. Поэтому и написать вручную оптимизированный ассемблерный код — совсем непростая задача.

R>Ну, сильно изменился общий результат?


Для начала расскажи как запускал. Есть серьёзное подозрение, что под дебаггером. На эту мысль наводят довольно большие цифры по сравнению с некоторыми моими. Например increment Int64 под x64 у меня более чем вдвое быстрее. Во-вторых, покажи что там компилятор паскали наоптимизировал.
  что произвёл джиттер
  как в WinDBG добраться до ассемблера (на примере x64)
0:000> !DumpDomain
--------------------------------------
System Domain:      00007ffd7b1da740
LowFrequencyHeap:   00007ffd7b1dacb8
HighFrequencyHeap:  00007ffd7b1dad48
StubHeap:           00007ffd7b1dadd8
Stage:              OPEN
Name:               None
--------------------------------------
Shared Domain:      00007ffd7b1da170
LowFrequencyHeap:   00007ffd7b1dacb8
HighFrequencyHeap:  00007ffd7b1dad48
StubHeap:           00007ffd7b1dadd8
Stage:              OPEN
Name:               None
Assembly:           0000022c68d14de0 [C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll]
ClassLoader:        0000022c68d07b50
  Module Name
00007ffd74071000            C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll

--------------------------------------
Domain 1:           0000022c68cc9370
LowFrequencyHeap:   0000022c68cc9b68
HighFrequencyHeap:  0000022c68cc9bf8
StubHeap:           0000022c68cc9c88
Stage:              OPEN
SecurityDescriptor: 0000022c68ca8460
Name:               ConsoleApp12.exe
Assembly:           0000022c68d14de0 [C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll]
ClassLoader:        0000022c68d07b50
SecurityDescriptor: 0000022c68d04e40
  Module Name
00007ffd74071000            C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll

Assembly:           0000022c68d22bb0 [C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\bin\x64\Release\ConsoleApp12.exe]
ClassLoader:        0000022c68d22cd0
SecurityDescriptor: 0000022c68d04d50
  Module Name
00007ffd1b184148            C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\bin\x64\Release\ConsoleApp12.exe

Assembly:           0000022c68d2ad00 [C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll]
ClassLoader:        0000022c68d2b3b0
SecurityDescriptor: 0000022c68d057a0
  Module Name
00007ffd6fe01000            C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll


0:000> !DumpModule  -MT /d 00007ffd1b184148
Name:       C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\bin\x64\Release\ConsoleApp12.exe
Attributes: PEFile 
Assembly:   0000022c68d22bb0
LoaderHeap:              0000000000000000
TypeDefToMethodTableMap: 00007ffd1b180070
TypeRefToMethodTableMap: 00007ffd1b180090
MethodDefToDescMap:      00007ffd1b1801e0
FieldDefToDescMap:       00007ffd1b180258
MemberRefToDescMap:      0000000000000000
FileReferencesMap:       00007ffd1b1802c8
AssemblyReferencesMap:   00007ffd1b1802d0
MetaData start address:  0000022c68c123c4 (3404 bytes)

Types defined in this module

              MT          TypeDef Name
------------------------------------------------------------------------------
00007ffd1b185b28 0x02000002 ConsoleApp12.Program

Types referenced in this module

              MT            TypeRef Name
------------------------------------------------------------------------------
00007ffd74095dd8 0x02000013 System.Object
00007ffd74110ec0 0x02000017 System.TimeSpan
00007ffd74116690 0x02000018 System.Threading.CancellationTokenSource
00007ffd74117030 0x02000019 System.Nullable`1
00007ffd74118ad8 0x0200001a System.Security.Principal.WindowsIdentity
00007ffd74114d38 0x0200001b System.IO.FileStream
00007ffd6fe7be98 0x0200001c System.Diagnostics.Stopwatch
00007ffd740849e0 0x02000024 System.Console
00007ffd7409aea8 0x02000025 System.Int64
0:000> !DumpMT /d 00007ffd1b185b28
EEClass:         00007ffd1b1826d0
Module:          00007ffd1b184148
Name:            ConsoleApp12.Program
mdToken:         0000000002000002
File:            C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\bin\x64\Release\ConsoleApp12.exe
BaseSize:        0x18
ComponentSize:   0x0
Slots in VTable: 12
Number of IFaces in IFaceMap: 0
0:000> !DumpMT -MD 00007ffd1b185b28
EEClass:         00007ffd1b1826d0
Module:          00007ffd1b184148
Name:            ConsoleApp12.Program
mdToken:         0000000002000002
File:            C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\bin\x64\Release\ConsoleApp12.exe
BaseSize:        0x18
ComponentSize:   0x0
Slots in VTable: 12
Number of IFaces in IFaceMap: 0
--------------------------------------
MethodDesc Table
           Entry       MethodDesc    JIT Name
00007ffd745f3450 00007ffd74078de8 PreJIT System.Object.ToString()
00007ffd7460dc60 00007ffd7423c180 PreJIT System.Object.Equals(System.Object)
00007ffd745f3090 00007ffd7423c1a8 PreJIT System.Object.GetHashCode()
00007ffd745f0420 00007ffd7423c1b0 PreJIT System.Object.Finalize()
00007ffd1b290500 00007ffd1b185b10   NONE ConsoleApp12.Program..cctor()
00007ffd1b2904f0 00007ffd1b185b08   NONE ConsoleApp12.Program..ctor()
00007ffd1b290490 00007ffd1b185a70   NONE ConsoleApp12.Program.WaitForSingleObject(IntPtr, UInt32)
00007ffd1b2904a0 00007ffd1b185ab8   NONE ConsoleApp12.Program.B(System.Object)
00007ffd1b2904b0 00007ffd1b185ac8   NONE ConsoleApp12.Program.A(System.Object)
00007ffd1b290890 00007ffd1b185ad8    JIT ConsoleApp12.Program.Main(System.String[])
00007ffd1b2908f0 00007ffd1b185ae8    JIT ConsoleApp12.Program.TestSpeedInt32()
00007ffd1b290ae0 00007ffd1b185af8    JIT ConsoleApp12.Program.TestSpeedInt64()
0:000> !DumpMD /d 00007ffd1b185af8
Method Name:  ConsoleApp12.Program.TestSpeedInt64()
Class:        00007ffd1b1826d0
MethodTable:  00007ffd1b185b28
mdToken:      0000000006000006
Module:       00007ffd1b184148
IsJitted:     yes
CodeAddr:     00007ffd1b290ae0
Transparency: Critical
  x64
  ConsoleApp12.Program.TestSpeedInt64
0:000> !U /d 00007ffd1b290ae0
Normal JIT generated code
ConsoleApp12.Program.TestSpeedInt64()
Begin 00007ffd1b290ae0, size 1d2
*** WARNING: Unable to verify checksum for C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\bin\x64\Release\ConsoleApp12.exe
C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 206:
>>> 00007ffd`1b290ae0 55              push    rbp
00007ffd`1b290ae1 4157            push    r15
00007ffd`1b290ae3 4156            push    r14
00007ffd`1b290ae5 4155            push    r13
00007ffd`1b290ae7 4154            push    r12
00007ffd`1b290ae9 57              push    rdi
00007ffd`1b290aea 56              push    rsi
00007ffd`1b290aeb 53              push    rbx
00007ffd`1b290aec 4883ec48        sub     rsp,48h
00007ffd`1b290af0 488d6c2420      lea     rbp,[rsp+20h]
00007ffd`1b290af5 33c0            xor     eax,eax
00007ffd`1b290af7 48894500        mov     qword ptr [rbp],rax
00007ffd`1b290afb 48894520        mov     qword ptr [rbp+20h],rax
00007ffd`1b290aff 48896520        mov     qword ptr [rbp+20h],rsp
00007ffd`1b290b03 48b8f245d3bc9c3b0000 mov rax,3B9CBCD345F2h
00007ffd`1b290b0d 48894500        mov     qword ptr [rbp],rax
00007ffd`1b290b11 33f6            xor     esi,esi
00007ffd`1b290b13 33ff            xor     edi,edi
00007ffd`1b290b15 33db            xor     ebx,ebx
00007ffd`1b290b17 4533f6          xor     r14d,r14d
00007ffd`1b290b1a 4533ff          xor     r15d,r15d
00007ffd`1b290b1d 4533e4          xor     r12d,r12d
00007ffd`1b290b20 4533ed          xor     r13d,r13d
00007ffd`1b290b23 33c0            xor     eax,eax
00007ffd`1b290b25 48894518        mov     qword ptr [rbp+18h],rax

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 207:
*** WARNING: Unable to verify checksum for C:\Windows\assembly\NativeImages_v4.0.30319_64\System\6aaf038fc5a894ddf3cbce94407fb772\System.ni.dll
00007ffd`1b290b29 48b998bee76ffd7f0000 mov rcx,offset System_ni+0x7be98 (00007ffd`6fe7be98) (MT: System.Diagnostics.Stopwatch)
00007ffd`1b290b33 e8081a535f      call    clr!JIT_TrialAllocSFastMP_InlineGetThread (00007ffd`7a7c2540)
00007ffd`1b290b38 33d2            xor     edx,edx
00007ffd`1b290b3a 48895008        mov     qword ptr [rax+8],rdx
00007ffd`1b290b3e c6401800        mov     byte ptr [rax+18h],0
00007ffd`1b290b42 48895010        mov     qword ptr [rax+10h],rdx
00007ffd`1b290b46 48894508        mov     qword ptr [rbp+8],rax
00007ffd`1b290b4a 80781800        cmp     byte ptr [rax+18h],0
00007ffd`1b290b4e 7515            jne     00007ffd`1b290b65
00007ffd`1b290b50 e8db8cea54      call    System_ni+0x339830 (00007ffd`70139830) (System.Diagnostics.Stopwatch.GetTimestamp(), mdToken: 00000000060030f3)
00007ffd`1b290b55 488b5508        mov     rdx,qword ptr [rbp+8]
00007ffd`1b290b59 48894210        mov     qword ptr [rdx+10h],rax
00007ffd`1b290b5d c6421801        mov     byte ptr [rdx+18h],1
00007ffd`1b290b61 48895508        mov     qword ptr [rbp+8],rdx
00007ffd`1b290b65 488b4508        mov     rax,qword ptr [rbp+8]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 208:
00007ffd`1b290b69 33c9            xor     ecx,ecx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 210:
00007ffd`1b290b6b 488b5518        mov     rdx,qword ptr [rbp+18h]
00007ffd`1b290b6f 48ffc2          inc     rdx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 211:
00007ffd`1b290b72 49ffc5          inc     r13

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 212:
00007ffd`1b290b75 49ffc4          inc     r12

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 213:
00007ffd`1b290b78 49ffc7          inc     r15

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 214:
00007ffd`1b290b7b 49ffc6          inc     r14

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 215:
00007ffd`1b290b7e 48ffc3          inc     rbx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 216:
00007ffd`1b290b81 48ffc7          inc     rdi

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 217:
00007ffd`1b290b84 48ffc6          inc     rsi

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 208:
00007ffd`1b290b87 ffc1            inc     ecx
00007ffd`1b290b89 81f980969800    cmp     ecx,989680h
00007ffd`1b290b8f 48895518        mov     qword ptr [rbp+18h],rdx
00007ffd`1b290b93 7cd6            jl      00007ffd`1b290b6b

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 219:
00007ffd`1b290b95 48894510        mov     qword ptr [rbp+10h],rax
00007ffd`1b290b99 488bc8          mov     rcx,rax
00007ffd`1b290b9c e80f33e554      call    System_ni+0x2e3eb0 (00007ffd`700e3eb0) (System.Diagnostics.Stopwatch.Stop(), mdToken: 00000000060030ec)
00007ffd`1b290ba1 488b4d10        mov     rcx,qword ptr [rbp+10h]
00007ffd`1b290ba5 e8361fe754      call    System_ni+0x302ae0 (00007ffd`70102ae0) (System.Diagnostics.Stopwatch.GetRawElapsedTicks(), mdToken: 00000000060030f4)
00007ffd`1b290baa 488bf0          mov     rsi,rax

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 222:
00007ffd`1b290bad 33c0            xor     eax,eax
00007ffd`1b290baf 488b7d10        mov     rdi,qword ptr [rbp+10h]
00007ffd`1b290bb3 48894708        mov     qword ptr [rdi+8],rax
00007ffd`1b290bb7 e8748cea54      call    System_ni+0x339830 (00007ffd`70139830) (System.Diagnostics.Stopwatch.GetTimestamp(), mdToken: 00000000060030f3)
00007ffd`1b290bbc 48894710        mov     qword ptr [rdi+10h],rax
00007ffd`1b290bc0 c6471801        mov     byte ptr [rdi+18h],1

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 223:
00007ffd`1b290bc4 4883c420        add     rsp,20h
00007ffd`1b290bc8 b904000000      mov     ecx,4
00007ffd`1b290bcd 6a00            push    0
00007ffd`1b290bcf 6a00            push    0
00007ffd`1b290bd1 48ffc9          dec     rcx
00007ffd`1b290bd4 75f7            jne     00007ffd`1b290bcd
00007ffd`1b290bd6 4883ec20        sub     rsp,20h
00007ffd`1b290bda 488d4c2420      lea     rcx,[rsp+20h]
00007ffd`1b290bdf 48896520        mov     qword ptr [rbp+20h],rsp

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 224:
00007ffd`1b290be3 33c0            xor     eax,eax
00007ffd`1b290be5 488d5108        lea     rdx,[rcx+8]
00007ffd`1b290be9 4c8d4110        lea     r8,[rcx+10h]
00007ffd`1b290bed 4c8d4918        lea     r9,[rcx+18h]
00007ffd`1b290bf1 4c8d5120        lea     r10,[rcx+20h]
00007ffd`1b290bf5 4c8d5928        lea     r11,[rcx+28h]
00007ffd`1b290bf9 488d5930        lea     rbx,[rcx+30h]
00007ffd`1b290bfd 4c8d7138        lea     r14,[rcx+38h]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 226:
00007ffd`1b290c01 48ff01          inc     qword ptr [rcx]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 227:
00007ffd`1b290c04 4c8bfa          mov     r15,rdx
00007ffd`1b290c07 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 228:
00007ffd`1b290c0a 4d8bf8          mov     r15,r8
00007ffd`1b290c0d 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 229:
00007ffd`1b290c10 4d8bf9          mov     r15,r9
00007ffd`1b290c13 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 230:
00007ffd`1b290c16 4d8bfa          mov     r15,r10
00007ffd`1b290c19 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 231:
00007ffd`1b290c1c 4d8bfb          mov     r15,r11
00007ffd`1b290c1f 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 232:
00007ffd`1b290c22 4c8bfb          mov     r15,rbx
00007ffd`1b290c25 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 233:
00007ffd`1b290c28 4d8bfe          mov     r15,r14
00007ffd`1b290c2b 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 224:
00007ffd`1b290c2e ffc0            inc     eax
00007ffd`1b290c30 3d80969800      cmp     eax,989680h
00007ffd`1b290c35 7cca            jl      00007ffd`1b290c01

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 235:
00007ffd`1b290c37 488bcf          mov     rcx,rdi
00007ffd`1b290c3a e87132e554      call    System_ni+0x2e3eb0 (00007ffd`700e3eb0) (System.Diagnostics.Stopwatch.Stop(), mdToken: 00000000060030ec)
00007ffd`1b290c3f 488bcf          mov     rcx,rdi
00007ffd`1b290c42 e8991ee754      call    System_ni+0x302ae0 (00007ffd`70102ae0) (System.Diagnostics.Stopwatch.GetRawElapsedTicks(), mdToken: 00000000060030f4)
00007ffd`1b290c47 488bf8          mov     rdi,rax

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 237:
00007ffd`1b290c4a 48b9a8ae0974fd7f0000 mov rcx,offset mscorlib_ni!System.Reflection.RuntimeMethodInfo.get_IsOverloaded()$##600464C <PERF> (mscorlib_ni+0x2aea8) (00007ffd`7409aea8)
00007ffd`1b290c54 e8e718535f      call    clr!JIT_TrialAllocSFastMP_InlineGetThread (00007ffd`7a7c2540)
00007ffd`1b290c59 488bd8          mov     rbx,rax
00007ffd`1b290c5c 48897308        mov     qword ptr [rbx+8],rsi
00007ffd`1b290c60 48b9a8ae0974fd7f0000 mov rcx,offset mscorlib_ni!System.Reflection.RuntimeMethodInfo.get_IsOverloaded()$##600464C <PERF> (mscorlib_ni+0x2aea8) (00007ffd`7409aea8)
00007ffd`1b290c6a e8d118535f      call    clr!JIT_TrialAllocSFastMP_InlineGetThread (00007ffd`7a7c2540)
00007ffd`1b290c6f 4c8bc0          mov     r8,rax
00007ffd`1b290c72 49897808        mov     qword ptr [r8+8],rdi
00007ffd`1b290c76 488bd3          mov     rdx,rbx
00007ffd`1b290c79 48b9903600102c020000 mov rcx,22C10003690h
00007ffd`1b290c83 488b09          mov     rcx,qword ptr [rcx]
00007ffd`1b290c86 e8c5923859      call    mscorlib_ni!System.Console.WriteLine(System.String, System.Object, System.Object)$##6000B7B (00007ffd`74619f50)

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 238:
00007ffd`1b290c8b 48b9f245d3bc9c3b0000 mov rcx,3B9CBCD345F2h
00007ffd`1b290c95 48394d00        cmp     qword ptr [rbp],rcx
00007ffd`1b290c99 7405            je      00007ffd`1b290ca0
00007ffd`1b290c9b e85054865f      call    clr!DoJITFailFast (00007ffd`7aaf60f0)
00007ffd`1b290ca0 90              nop
00007ffd`1b290ca1 488d6528        lea     rsp,[rbp+28h]
00007ffd`1b290ca5 5b              pop     rbx
00007ffd`1b290ca6 5e              pop     rsi
00007ffd`1b290ca7 5f              pop     rdi
00007ffd`1b290ca8 415c            pop     r12
00007ffd`1b290caa 415d            pop     r13
00007ffd`1b290cac 415e            pop     r14
00007ffd`1b290cae 415f            pop     r15
00007ffd`1b290cb0 5d              pop     rbp
00007ffd`1b290cb1 c3              ret

  ConsoleApp12.Program.TestSpeedInt32()
0:000> !U /d 00007ffd1b290ae0
Normal JIT generated code
ConsoleApp12.Program.TestSpeedInt64()
Begin 00007ffd1b290ae0, size 1d2
*** WARNING: Unable to verify checksum for C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\bin\x64\Release\ConsoleApp12.exe

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 206:
>>> 00007ffd`1b290ae0 55              push    rbp
00007ffd`1b290ae1 4157            push    r15
00007ffd`1b290ae3 4156            push    r14
00007ffd`1b290ae5 4155            push    r13
00007ffd`1b290ae7 4154            push    r12
00007ffd`1b290ae9 57              push    rdi
00007ffd`1b290aea 56              push    rsi
00007ffd`1b290aeb 53              push    rbx
00007ffd`1b290aec 4883ec48        sub     rsp,48h
00007ffd`1b290af0 488d6c2420      lea     rbp,[rsp+20h]
00007ffd`1b290af5 33c0            xor     eax,eax
00007ffd`1b290af7 48894500        mov     qword ptr [rbp],rax
00007ffd`1b290afb 48894520        mov     qword ptr [rbp+20h],rax
00007ffd`1b290aff 48896520        mov     qword ptr [rbp+20h],rsp
00007ffd`1b290b03 48b8f245d3bc9c3b0000 mov rax,3B9CBCD345F2h
00007ffd`1b290b0d 48894500        mov     qword ptr [rbp],rax
00007ffd`1b290b11 33f6            xor     esi,esi
00007ffd`1b290b13 33ff            xor     edi,edi
00007ffd`1b290b15 33db            xor     ebx,ebx
00007ffd`1b290b17 4533f6          xor     r14d,r14d
00007ffd`1b290b1a 4533ff          xor     r15d,r15d
00007ffd`1b290b1d 4533e4          xor     r12d,r12d
00007ffd`1b290b20 4533ed          xor     r13d,r13d
00007ffd`1b290b23 33c0            xor     eax,eax
00007ffd`1b290b25 48894518        mov     qword ptr [rbp+18h],rax

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 207:
*** WARNING: Unable to verify checksum for C:\Windows\assembly\NativeImages_v4.0.30319_64\System\6aaf038fc5a894ddf3cbce94407fb772\System.ni.dll
00007ffd`1b290b29 48b998bee76ffd7f0000 mov rcx,offset System_ni+0x7be98 (00007ffd`6fe7be98) (MT: System.Diagnostics.Stopwatch)
00007ffd`1b290b33 e8081a535f      call    clr!JIT_TrialAllocSFastMP_InlineGetThread (00007ffd`7a7c2540)
00007ffd`1b290b38 33d2            xor     edx,edx
00007ffd`1b290b3a 48895008        mov     qword ptr [rax+8],rdx
00007ffd`1b290b3e c6401800        mov     byte ptr [rax+18h],0
00007ffd`1b290b42 48895010        mov     qword ptr [rax+10h],rdx
00007ffd`1b290b46 48894508        mov     qword ptr [rbp+8],rax
00007ffd`1b290b4a 80781800        cmp     byte ptr [rax+18h],0
00007ffd`1b290b4e 7515            jne     00007ffd`1b290b65
00007ffd`1b290b50 e8db8cea54      call    System_ni+0x339830 (00007ffd`70139830) (System.Diagnostics.Stopwatch.GetTimestamp(), mdToken: 00000000060030f3)
00007ffd`1b290b55 488b5508        mov     rdx,qword ptr [rbp+8]
00007ffd`1b290b59 48894210        mov     qword ptr [rdx+10h],rax
00007ffd`1b290b5d c6421801        mov     byte ptr [rdx+18h],1
00007ffd`1b290b61 48895508        mov     qword ptr [rbp+8],rdx
00007ffd`1b290b65 488b4508        mov     rax,qword ptr [rbp+8]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 208:
00007ffd`1b290b69 33c9            xor     ecx,ecx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 210:
00007ffd`1b290b6b 488b5518        mov     rdx,qword ptr [rbp+18h]
00007ffd`1b290b6f 48ffc2          inc     rdx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 211:
00007ffd`1b290b72 49ffc5          inc     r13

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 212:
00007ffd`1b290b75 49ffc4          inc     r12

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 213:
00007ffd`1b290b78 49ffc7          inc     r15

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 214:
00007ffd`1b290b7b 49ffc6          inc     r14

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 215:
00007ffd`1b290b7e 48ffc3          inc     rbx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 216:
00007ffd`1b290b81 48ffc7          inc     rdi

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 217:
00007ffd`1b290b84 48ffc6          inc     rsi

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 208:
00007ffd`1b290b87 ffc1            inc     ecx
00007ffd`1b290b89 81f980969800    cmp     ecx,989680h
00007ffd`1b290b8f 48895518        mov     qword ptr [rbp+18h],rdx
00007ffd`1b290b93 7cd6            jl      00007ffd`1b290b6b

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 219:
00007ffd`1b290b95 48894510        mov     qword ptr [rbp+10h],rax
00007ffd`1b290b99 488bc8          mov     rcx,rax
00007ffd`1b290b9c e80f33e554      call    System_ni+0x2e3eb0 (00007ffd`700e3eb0) (System.Diagnostics.Stopwatch.Stop(), mdToken: 00000000060030ec)
00007ffd`1b290ba1 488b4d10        mov     rcx,qword ptr [rbp+10h]
00007ffd`1b290ba5 e8361fe754      call    System_ni+0x302ae0 (00007ffd`70102ae0) (System.Diagnostics.Stopwatch.GetRawElapsedTicks(), mdToken: 00000000060030f4)
00007ffd`1b290baa 488bf0          mov     rsi,rax

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 222:
00007ffd`1b290bad 33c0            xor     eax,eax
00007ffd`1b290baf 488b7d10        mov     rdi,qword ptr [rbp+10h]
00007ffd`1b290bb3 48894708        mov     qword ptr [rdi+8],rax
00007ffd`1b290bb7 e8748cea54      call    System_ni+0x339830 (00007ffd`70139830) (System.Diagnostics.Stopwatch.GetTimestamp(), mdToken: 00000000060030f3)
00007ffd`1b290bbc 48894710        mov     qword ptr [rdi+10h],rax
00007ffd`1b290bc0 c6471801        mov     byte ptr [rdi+18h],1

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 223:
00007ffd`1b290bc4 4883c420        add     rsp,20h
00007ffd`1b290bc8 b904000000      mov     ecx,4
00007ffd`1b290bcd 6a00            push    0
00007ffd`1b290bcf 6a00            push    0
00007ffd`1b290bd1 48ffc9          dec     rcx
00007ffd`1b290bd4 75f7            jne     00007ffd`1b290bcd
00007ffd`1b290bd6 4883ec20        sub     rsp,20h
00007ffd`1b290bda 488d4c2420      lea     rcx,[rsp+20h]
00007ffd`1b290bdf 48896520        mov     qword ptr [rbp+20h],rsp

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 224:
00007ffd`1b290be3 33c0            xor     eax,eax
00007ffd`1b290be5 488d5108        lea     rdx,[rcx+8]
00007ffd`1b290be9 4c8d4110        lea     r8,[rcx+10h]
00007ffd`1b290bed 4c8d4918        lea     r9,[rcx+18h]
00007ffd`1b290bf1 4c8d5120        lea     r10,[rcx+20h]
00007ffd`1b290bf5 4c8d5928        lea     r11,[rcx+28h]
00007ffd`1b290bf9 488d5930        lea     rbx,[rcx+30h]
00007ffd`1b290bfd 4c8d7138        lea     r14,[rcx+38h]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 226:
00007ffd`1b290c01 48ff01          inc     qword ptr [rcx]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 227:
00007ffd`1b290c04 4c8bfa          mov     r15,rdx
00007ffd`1b290c07 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 228:
00007ffd`1b290c0a 4d8bf8          mov     r15,r8
00007ffd`1b290c0d 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 229:
00007ffd`1b290c10 4d8bf9          mov     r15,r9
00007ffd`1b290c13 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 230:
00007ffd`1b290c16 4d8bfa          mov     r15,r10
00007ffd`1b290c19 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 231:
00007ffd`1b290c1c 4d8bfb          mov     r15,r11
00007ffd`1b290c1f 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 232:
00007ffd`1b290c22 4c8bfb          mov     r15,rbx
00007ffd`1b290c25 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 233:
00007ffd`1b290c28 4d8bfe          mov     r15,r14
00007ffd`1b290c2b 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 224:
00007ffd`1b290c2e ffc0            inc     eax
00007ffd`1b290c30 3d80969800      cmp     eax,989680h
00007ffd`1b290c35 7cca            jl      00007ffd`1b290c01

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 235:
00007ffd`1b290c37 488bcf          mov     rcx,rdi
00007ffd`1b290c3a e87132e554      call    System_ni+0x2e3eb0 (00007ffd`700e3eb0) (System.Diagnostics.Stopwatch.Stop(), mdToken: 00000000060030ec)
00007ffd`1b290c3f 488bcf          mov     rcx,rdi
00007ffd`1b290c42 e8991ee754      call    System_ni+0x302ae0 (00007ffd`70102ae0) (System.Diagnostics.Stopwatch.GetRawElapsedTicks(), mdToken: 00000000060030f4)
00007ffd`1b290c47 488bf8          mov     rdi,rax

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 237:
00007ffd`1b290c4a 48b9a8ae0974fd7f0000 mov rcx,offset mscorlib_ni!System.Reflection.RuntimeMethodInfo.get_IsOverloaded()$##600464C <PERF> (mscorlib_ni+0x2aea8) (00007ffd`7409aea8)
00007ffd`1b290c54 e8e718535f      call    clr!JIT_TrialAllocSFastMP_InlineGetThread (00007ffd`7a7c2540)
00007ffd`1b290c59 488bd8          mov     rbx,rax
00007ffd`1b290c5c 48897308        mov     qword ptr [rbx+8],rsi
00007ffd`1b290c60 48b9a8ae0974fd7f0000 mov rcx,offset mscorlib_ni!System.Reflection.RuntimeMethodInfo.get_IsOverloaded()$##600464C <PERF> (mscorlib_ni+0x2aea8) (00007ffd`7409aea8)
00007ffd`1b290c6a e8d118535f      call    clr!JIT_TrialAllocSFastMP_InlineGetThread (00007ffd`7a7c2540)
00007ffd`1b290c6f 4c8bc0          mov     r8,rax
00007ffd`1b290c72 49897808        mov     qword ptr [r8+8],rdi
00007ffd`1b290c76 488bd3          mov     rdx,rbx
00007ffd`1b290c79 48b9903600102c020000 mov rcx,22C10003690h
00007ffd`1b290c83 488b09          mov     rcx,qword ptr [rcx]
00007ffd`1b290c86 e8c5923859      call    mscorlib_ni!System.Console.WriteLine(System.String, System.Object, System.Object)$##6000B7B (00007ffd`74619f50)

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 238:
00007ffd`1b290c8b 48b9f245d3bc9c3b0000 mov rcx,3B9CBCD345F2h
00007ffd`1b290c95 48394d00        cmp     qword ptr [rbp],rcx
00007ffd`1b290c99 7405            je      00007ffd`1b290ca0
00007ffd`1b290c9b e85054865f      call    clr!DoJITFailFast (00007ffd`7aaf60f0)
00007ffd`1b290ca0 90              nop
00007ffd`1b290ca1 488d6528        lea     rsp,[rbp+28h]
00007ffd`1b290ca5 5b              pop     rbx
00007ffd`1b290ca6 5e              pop     rsi
00007ffd`1b290ca7 5f              pop     rdi
00007ffd`1b290ca8 415c            pop     r12
00007ffd`1b290caa 415d            pop     r13
00007ffd`1b290cac 415e            pop     r14
00007ffd`1b290cae 415f            pop     r15
00007ffd`1b290cb0 5d              pop     rbp
00007ffd`1b290cb1 c3              ret
  x86
  ConsoleApp12.Program.TestSpeedInt64()
0:007> !DumpMD /d 031f4e14
Method Name:  ConsoleApp12.Program.TestSpeedInt64()
Class:        031f1398
MethodTable:  031f4e38
mdToken:      06000006
Module:       031f4044
IsJitted:     yes
CodeAddr:     032809f0
Transparency: Critical
0:007> !U /d 032809f0
Normal JIT generated code
ConsoleApp12.Program.TestSpeedInt64()
Begin 032809f0, size 1b1

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 206:
>>> 032809f0 55              push    ebp
032809f1 8bec            mov     ebp,esp
032809f3 57              push    edi
032809f4 56              push    esi
032809f5 53              push    ebx
032809f6 83ec18          sub     esp,18h
032809f9 33c0            xor     eax,eax
032809fb 8945dc          mov     dword ptr [ebp-24h],eax
032809fe 8945f0          mov     dword ptr [ebp-10h],eax
03280a01 8965f0          mov     dword ptr [ebp-10h],esp
03280a04 c745dcf8f90bd5  mov     dword ptr [ebp-24h],0D50BF9F8h

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 207:
03280a0b b97453236f      mov     ecx,offset System_ni+0x45374 (6f235374) (MT: System.Diagnostics.Stopwatch)
03280a10 e8b32674fe      call    019c30c8 (JitHelp: CORINFO_HELP_NEWSFAST)
03280a15 8bf0            mov     esi,eax
03280a17 c7460400000000  mov     dword ptr [esi+4],0
03280a1e c7460800000000  mov     dword ptr [esi+8],0
03280a25 c6461400        mov     byte ptr [esi+14h],0
03280a29 c7460c00000000  mov     dword ptr [esi+0Ch],0
03280a30 c7461000000000  mov     dword ptr [esi+10h],0
03280a37 807e1400        cmp     byte ptr [esi+14h],0
03280a3b 750f            jne     03280a4c
03280a3d e8ee50176c      call    System_ni+0x205b30 (6f3f5b30) (System.Diagnostics.Stopwatch.GetTimestamp(), mdToken: 060030f3)
03280a42 89460c          mov     dword ptr [esi+0Ch],eax
03280a45 895610          mov     dword ptr [esi+10h],edx
03280a48 c6461401        mov     byte ptr [esi+14h],1

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 208:
03280a4c 33c0            xor     eax,eax
03280a4e 40              inc     eax
03280a4f 3d80969800      cmp     eax,989680h
03280a54 7cf8            jl      03280a4e

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 219:
03280a56 8bce            mov     ecx,esi
03280a58 e8d32e136c      call    System_ni+0x1c3930 (6f3b3930) (System.Diagnostics.Stopwatch.Stop(), mdToken: 060030ec)
03280a5d 8bce            mov     ecx,esi
03280a5f e8cc9d146c      call    System_ni+0x1da830 (6f3ca830) (System.Diagnostics.Stopwatch.GetRawElapsedTicks(), mdToken: 060030f4)
03280a64 8945e8          mov     dword ptr [ebp-18h],eax
03280a67 8955ec          mov     dword ptr [ebp-14h],edx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 222:
03280a6a c7460400000000  mov     dword ptr [esi+4],0
03280a71 c7460800000000  mov     dword ptr [esi+8],0
03280a78 e8b350176c      call    System_ni+0x205b30 (6f3f5b30) (System.Diagnostics.Stopwatch.GetTimestamp(), mdToken: 060030f3)
03280a7d 89460c          mov     dword ptr [esi+0Ch],eax
03280a80 895610          mov     dword ptr [esi+10h],edx
03280a83 c6461401        mov     byte ptr [esi+14h],1

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 223:
03280a87 b810000000      mov     eax,10h
03280a8c 6a00            push    0
03280a8e 48              dec     eax
03280a8f 75fb            jne     03280a8c
03280a91 8bc4            mov     eax,esp
03280a93 8965f0          mov     dword ptr [ebp-10h],esp
03280a96 8bc8            mov     ecx,eax

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 224:
03280a98 33db            xor     ebx,ebx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 226:
03280a9a 8b01            mov     eax,dword ptr [ecx]
03280a9c 8b5104          mov     edx,dword ptr [ecx+4]
03280a9f 83c001          add     eax,1
03280aa2 83d200          adc     edx,0
03280aa5 8901            mov     dword ptr [ecx],eax
03280aa7 895104          mov     dword ptr [ecx+4],edx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 227:
03280aaa 8b4108          mov     eax,dword ptr [ecx+8]
03280aad 8b510c          mov     edx,dword ptr [ecx+0Ch]
03280ab0 83c001          add     eax,1
03280ab3 83d200          adc     edx,0
03280ab6 894108          mov     dword ptr [ecx+8],eax
03280ab9 89510c          mov     dword ptr [ecx+0Ch],edx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 228:
03280abc 8d7910          lea     edi,[ecx+10h]
03280abf 8b07            mov     eax,dword ptr [edi]
03280ac1 8b5704          mov     edx,dword ptr [edi+4]
03280ac4 83c001          add     eax,1
03280ac7 83d200          adc     edx,0
03280aca 8907            mov     dword ptr [edi],eax
03280acc 895704          mov     dword ptr [edi+4],edx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 229:
03280acf 8d7918          lea     edi,[ecx+18h]
03280ad2 8b07            mov     eax,dword ptr [edi]
03280ad4 8b5704          mov     edx,dword ptr [edi+4]
03280ad7 83c001          add     eax,1
03280ada 83d200          adc     edx,0
03280add 8907            mov     dword ptr [edi],eax
03280adf 895704          mov     dword ptr [edi+4],edx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 230:
03280ae2 8d7920          lea     edi,[ecx+20h]
03280ae5 8b07            mov     eax,dword ptr [edi]
03280ae7 8b5704          mov     edx,dword ptr [edi+4]
03280aea 83c001          add     eax,1
03280aed 83d200          adc     edx,0
03280af0 8907            mov     dword ptr [edi],eax
03280af2 895704          mov     dword ptr [edi+4],edx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 231:
03280af5 8d7928          lea     edi,[ecx+28h]
03280af8 8b07            mov     eax,dword ptr [edi]
03280afa 8b5704          mov     edx,dword ptr [edi+4]
03280afd 83c001          add     eax,1
03280b00 83d200          adc     edx,0
03280b03 8907            mov     dword ptr [edi],eax
03280b05 895704          mov     dword ptr [edi+4],edx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 232:
03280b08 8d7930          lea     edi,[ecx+30h]
03280b0b 8b07            mov     eax,dword ptr [edi]
03280b0d 8b5704          mov     edx,dword ptr [edi+4]
03280b10 83c001          add     eax,1
03280b13 83d200          adc     edx,0
03280b16 8907            mov     dword ptr [edi],eax
03280b18 895704          mov     dword ptr [edi+4],edx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 233:
03280b1b 8d7938          lea     edi,[ecx+38h]
03280b1e 8b07            mov     eax,dword ptr [edi]
03280b20 8b5704          mov     edx,dword ptr [edi+4]
03280b23 83c001          add     eax,1
03280b26 83d200          adc     edx,0
03280b29 8907            mov     dword ptr [edi],eax
03280b2b 895704          mov     dword ptr [edi+4],edx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 224:
03280b2e 43              inc     ebx
03280b2f 81fb80969800    cmp     ebx,989680h
03280b35 0f8c5fffffff    jl      03280a9a

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 235:
03280b3b 8bce            mov     ecx,esi
03280b3d e8ee2d136c      call    System_ni+0x1c3930 (6f3b3930) (System.Diagnostics.Stopwatch.Stop(), mdToken: 060030ec)
03280b42 8bce            mov     ecx,esi
03280b44 e8e79c146c      call    System_ni+0x1da830 (6f3ca830) (System.Diagnostics.Stopwatch.GetRawElapsedTicks(), mdToken: 060030f4)
03280b49 8955e4          mov     dword ptr [ebp-1Ch],edx
03280b4c 8bd8            mov     ebx,eax

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 237:
03280b4e b90c15cf6f      mov     ecx,offset mscorlib_ni!System.Text.Encoding.GetEncodingCodePage(Int32)$##6006719 <PERF> (mscorlib_ni+0x1150c) (6fcf150c)
03280b53 e8702574fe      call    019c30c8 (JitHelp: CORINFO_HELP_NEWSFAST)
03280b58 8bf0            mov     esi,eax
03280b5a b90c15cf6f      mov     ecx,offset mscorlib_ni!System.Text.Encoding.GetEncodingCodePage(Int32)$##6006719 <PERF> (mscorlib_ni+0x1150c) (6fcf150c)
03280b5f e8642574fe      call    019c30c8 (JitHelp: CORINFO_HELP_NEWSFAST)
03280b64 8bc8            mov     ecx,eax
03280b66 8b3d4c233f04    mov     edi,dword ptr ds:[43F234Ch] ("elapsed for variable =  {0:D} \tarray = {1:D}")
03280b6c 8b45e8          mov     eax,dword ptr [ebp-18h]
03280b6f 8b55ec          mov     edx,dword ptr [ebp-14h]
03280b72 894604          mov     dword ptr [esi+4],eax
03280b75 895608          mov     dword ptr [esi+8],edx
03280b78 8bd6            mov     edx,esi
03280b7a 8b45e4          mov     eax,dword ptr [ebp-1Ch]
03280b7d 895904          mov     dword ptr [ecx+4],ebx
03280b80 894108          mov     dword ptr [ecx+8],eax
03280b83 51              push    ecx
03280b84 8bcf            mov     ecx,edi
03280b86 e82930e46c      call    mscorlib_ni!System.Console.WriteLine(System.String, System.Object, System.Object)$##6000B7B (700c3bb4)

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 238:
03280b8b 817ddcf8f90bd5  cmp     dword ptr [ebp-24h],0D50BF9F8h
03280b92 7405            je      03280b99
03280b94 e8f7ee826e      call    clr!JIT_FailFast (71aafa90)
03280b99 8d65f4          lea     esp,[ebp-0Ch]
03280b9c 5b              pop     ebx
03280b9d 5e              pop     esi
03280b9e 5f              pop     edi
03280b9f 5d              pop     ebp
03280ba0 c3              ret


  ConsoleApp12.Program.TestSpeedInt32()
0:007> !DumpMD /d 031f4e08
Method Name:  ConsoleApp12.Program.TestSpeedInt32()
Class:        031f1398
MethodTable:  031f4e38
mdToken:      06000005
Module:       031f4044
IsJitted:     yes
CodeAddr:     03280890
Transparency: Critical
0:007> !U /d 03280890
Normal JIT generated code
ConsoleApp12.Program.TestSpeedInt32()
Begin 03280890, size 149
*** WARNING: Unable to verify checksum for C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\bin\x86\Release\ConsoleApp12.exe

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 170:
>>> 03280890 55              push    ebp
03280891 8bec            mov     ebp,esp
03280893 57              push    edi
03280894 56              push    esi
03280895 53              push    ebx
03280896 83ec18          sub     esp,18h
03280899 33c0            xor     eax,eax
0328089b 8945dc          mov     dword ptr [ebp-24h],eax
0328089e 8945f0          mov     dword ptr [ebp-10h],eax
032808a1 8965f0          mov     dword ptr [ebp-10h],esp
032808a4 c745dcf8f90bd5  mov     dword ptr [ebp-24h],0D50BF9F8h

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 171:
032808ab b9284f1f03      mov     ecx,31F4F28h
032808b0 ba04050000      mov     edx,504h
032808b5 e8a62b74fe      call    019c3460 (JitHelp: CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE)
*** WARNING: Unable to verify checksum for C:\Windows\assembly\NativeImages_v4.0.30319_32\System\ec6f62a404182f6fb54d32738ecb3684\System.ni.dll
032808ba b97453236f      mov     ecx,offset System_ni+0x45374 (6f235374) (MT: System.Diagnostics.Stopwatch)
032808bf e8042874fe      call    019c30c8 (JitHelp: CORINFO_HELP_NEWSFAST)
032808c4 8bf0            mov     esi,eax
032808c6 c7460400000000  mov     dword ptr [esi+4],0
032808cd c7460800000000  mov     dword ptr [esi+8],0
032808d4 c6461400        mov     byte ptr [esi+14h],0
032808d8 c7460c00000000  mov     dword ptr [esi+0Ch],0
032808df c7461000000000  mov     dword ptr [esi+10h],0
032808e6 807e1400        cmp     byte ptr [esi+14h],0
032808ea 750f            jne     032808fb
032808ec e83f52176c      call    System_ni+0x205b30 (6f3f5b30) (System.Diagnostics.Stopwatch.GetTimestamp(), mdToken: 060030f3)
032808f1 89460c          mov     dword ptr [esi+0Ch],eax
032808f4 895610          mov     dword ptr [esi+10h],edx
032808f7 c6461401        mov     byte ptr [esi+14h],1

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 172:
032808fb 33c0            xor     eax,eax
032808fd 40              inc     eax
032808fe 3d80969800      cmp     eax,989680h
03280903 7cf8            jl      032808fd

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 183:
03280905 8bce            mov     ecx,esi
03280907 e82430136c      call    System_ni+0x1c3930 (6f3b3930) (System.Diagnostics.Stopwatch.Stop(), mdToken: 060030ec)
0328090c 8bce            mov     ecx,esi
0328090e e81d9f146c      call    System_ni+0x1da830 (6f3ca830) (System.Diagnostics.Stopwatch.GetRawElapsedTicks(), mdToken: 060030f4)
03280913 8955ec          mov     dword ptr [ebp-14h],edx
03280916 8bd8            mov     ebx,eax

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 186:
03280918 c7460400000000  mov     dword ptr [esi+4],0
0328091f c7460800000000  mov     dword ptr [esi+8],0
03280926 e80552176c      call    System_ni+0x205b30 (6f3f5b30) (System.Diagnostics.Stopwatch.GetTimestamp(), mdToken: 060030f3)
0328092b 89460c          mov     dword ptr [esi+0Ch],eax
0328092e 895610          mov     dword ptr [esi+10h],edx
03280931 c6461401        mov     byte ptr [esi+14h],1

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 187:
03280935 b808000000      mov     eax,8
0328093a 6a00            push    0
0328093c 48              dec     eax
0328093d 75fb            jne     0328093a
0328093f 8bc4            mov     eax,esp
03280941 8965f0          mov     dword ptr [ebp-10h],esp

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 188:
03280944 33c9            xor     ecx,ecx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 190:
03280946 ff00            inc     dword ptr [eax]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 191:
03280948 ff4004          inc     dword ptr [eax+4]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 192:
0328094b 8d5008          lea     edx,[eax+8]
0328094e ff02            inc     dword ptr [edx]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 193:
03280950 8d500c          lea     edx,[eax+0Ch]
03280953 ff02            inc     dword ptr [edx]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 194:
03280955 8d5010          lea     edx,[eax+10h]
03280958 ff02            inc     dword ptr [edx]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 195:
0328095a 8d5014          lea     edx,[eax+14h]
0328095d ff02            inc     dword ptr [edx]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 196:
0328095f 8d5018          lea     edx,[eax+18h]
03280962 ff02            inc     dword ptr [edx]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 197:
03280964 8d501c          lea     edx,[eax+1Ch]
03280967 ff02            inc     dword ptr [edx]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 188:
03280969 41              inc     ecx
0328096a 81f980969800    cmp     ecx,989680h
03280970 7cd4            jl      03280946

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 199:
03280972 8bce            mov     ecx,esi
03280974 e8b72f136c      call    System_ni+0x1c3930 (6f3b3930) (System.Diagnostics.Stopwatch.Stop(), mdToken: 060030ec)
03280979 8bce            mov     ecx,esi
0328097b e8b09e146c      call    System_ni+0x1da830 (6f3ca830) (System.Diagnostics.Stopwatch.GetRawElapsedTicks(), mdToken: 060030f4)
03280980 8945e0          mov     dword ptr [ebp-20h],eax
03280983 8955e4          mov     dword ptr [ebp-1Ch],edx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 201:
03280986 b90c15cf6f      mov     ecx,offset mscorlib_ni!System.Text.Encoding.GetEncodingCodePage(Int32)$##6006719 <PERF> (mscorlib_ni+0x1150c) (6fcf150c)
0328098b e8382774fe      call    019c30c8 (JitHelp: CORINFO_HELP_NEWSFAST)
03280990 8bf0            mov     esi,eax
03280992 b90c15cf6f      mov     ecx,offset mscorlib_ni!System.Text.Encoding.GetEncodingCodePage(Int32)$##6006719 <PERF> (mscorlib_ni+0x1150c) (6fcf150c)
03280997 e82c2774fe      call    019c30c8 (JitHelp: CORINFO_HELP_NEWSFAST)
0328099c 8bc8            mov     ecx,eax
0328099e 8b3d4c233f04    mov     edi,dword ptr ds:[43F234Ch] ("elapsed for variable =  {0:D} \tarray = {1:D}")
032809a4 8b45ec          mov     eax,dword ptr [ebp-14h]
032809a7 895e04          mov     dword ptr [esi+4],ebx
032809aa 894608          mov     dword ptr [esi+8],eax
032809ad 8b45e0          mov     eax,dword ptr [ebp-20h]
032809b0 8b55e4          mov     edx,dword ptr [ebp-1Ch]
032809b3 894104          mov     dword ptr [ecx+4],eax
032809b6 895108          mov     dword ptr [ecx+8],edx
032809b9 51              push    ecx
032809ba 8bcf            mov     ecx,edi
032809bc 8bd6            mov     edx,esi
032809be e8f131e46c      call    mscorlib_ni!System.Console.WriteLine(System.String, System.Object, System.Object)$##6000B7B (700c3bb4)

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 202:
032809c3 817ddcf8f90bd5  cmp     dword ptr [ebp-24h],0D50BF9F8h
032809ca 7405            je      032809d1
032809cc e8bff0826e      call    clr!JIT_FailFast (71aafa90)
032809d1 8d65f4          lea     esp,[ebp-0Ch]
032809d4 5b              pop     ebx
032809d5 5e              pop     esi
032809d6 5f              pop     edi
032809d7 5d              pop     ebp
032809d8 c3              ret

Всё это получалось так: после получения резульатов на экране (код должен был отджитится) к процессу цеплялся WinDbg64. Не студией потому, что студия вностит коррективы в процесс Jitting'а, а меня тут интересовало то, что пойдёт в релиз — что будет на машине условного пользователя.

Показывай, что породил FPC для 64-бит, расскажи условия тестирования.
И наконец прекрати постить текст картинками!!!111111 У меня была идея взять твои результаты, посчитать медиану и стандартную ошибку, но с картинки это сделать невозможно.
Re[13]: 32 bit
Здравствуйте, rudzuk, Вы писали:

R>А ты сам не видишь дичь в результатах своих замеров? 64-битный код с треском сливает 32-битному, работая в родном для себя режиме. И это объясняется тем, что процессор, оказывается, не так прост. фасепальм.


Во-первых я заглядывал в дизасм, в то, что получилось после джиттера — там не было ничего экстраординарного. Во-вторых, я знаю что команды в современном x86 — это не инструкции. Сегодня x86 имеет RISC ядро, и сами команды декодирует в микрооперации, которые потом исполняте гипер-конвеер. Гипер-конвеерная архитектура появилаесь ещё в Pentium-4, а переупорядочивание команд в конвеере появилось ещё раньше аж в Pentium Pro, читать вот здесь.
Если ты посмотришь на модную штучку времён Core 2Duo ( Wide Dyanamic Execution) то увидишь там более 1 ALU.
В сочетании с переупорядочиванием инструкций (Out of order execution), то должен бы перестать удивлять тому, что частенько 2 команды выполняются дольше чем 5. Я этому удивляться перестал много лет назад, когда экспериментировал с командами процессора: у меня частенько rdtsc мерял 0 тактов на команду. Потом я открыл для себя fence-операции, в частности full-fence (примерно тогда уже узнал зачем нужен барьер памяти).

Понимаешь, нельзя сказать, сколько тактов займёт условный inc qword ptr [r15] и не получится его просто так сравнить с кодом аналогичного назначения для 32-бит. Поэтому и написать вручную оптимизированный ассемблерный код — совсем непростая задача.

R>Ну, сильно изменился общий результат?


Для начала расскажи как запускал. Есть серьёзное подозрение, что под дебаггером. На эту мысль наводят довольно большие цифры по сравнению с некоторыми моими. Например increment Int64 под x64 у меня более чем вдвое быстрее. Во-вторых, покажи что там компилятор паскали наоптимизировал.
  что произвёл джиттер
  как в WinDBG добраться до ассемблера (на примере x64)
0:000> !DumpDomain
--------------------------------------
System Domain:      00007ffd7b1da740
LowFrequencyHeap:   00007ffd7b1dacb8
HighFrequencyHeap:  00007ffd7b1dad48
StubHeap:           00007ffd7b1dadd8
Stage:              OPEN
Name:               None
--------------------------------------
Shared Domain:      00007ffd7b1da170
LowFrequencyHeap:   00007ffd7b1dacb8
HighFrequencyHeap:  00007ffd7b1dad48
StubHeap:           00007ffd7b1dadd8
Stage:              OPEN
Name:               None
Assembly:           0000022c68d14de0 [C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll]
ClassLoader:        0000022c68d07b50
  Module Name
00007ffd74071000            C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll

--------------------------------------
Domain 1:           0000022c68cc9370
LowFrequencyHeap:   0000022c68cc9b68
HighFrequencyHeap:  0000022c68cc9bf8
StubHeap:           0000022c68cc9c88
Stage:              OPEN
SecurityDescriptor: 0000022c68ca8460
Name:               ConsoleApp12.exe
Assembly:           0000022c68d14de0 [C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll]
ClassLoader:        0000022c68d07b50
SecurityDescriptor: 0000022c68d04e40
  Module Name
00007ffd74071000            C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll

Assembly:           0000022c68d22bb0 [C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\bin\x64\Release\ConsoleApp12.exe]
ClassLoader:        0000022c68d22cd0
SecurityDescriptor: 0000022c68d04d50
  Module Name
00007ffd1b184148            C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\bin\x64\Release\ConsoleApp12.exe

Assembly:           0000022c68d2ad00 [C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll]
ClassLoader:        0000022c68d2b3b0
SecurityDescriptor: 0000022c68d057a0
  Module Name
00007ffd6fe01000            C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll


0:000> !DumpModule  -MT /d 00007ffd1b184148
Name:       C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\bin\x64\Release\ConsoleApp12.exe
Attributes: PEFile 
Assembly:   0000022c68d22bb0
LoaderHeap:              0000000000000000
TypeDefToMethodTableMap: 00007ffd1b180070
TypeRefToMethodTableMap: 00007ffd1b180090
MethodDefToDescMap:      00007ffd1b1801e0
FieldDefToDescMap:       00007ffd1b180258
MemberRefToDescMap:      0000000000000000
FileReferencesMap:       00007ffd1b1802c8
AssemblyReferencesMap:   00007ffd1b1802d0
MetaData start address:  0000022c68c123c4 (3404 bytes)

Types defined in this module

              MT          TypeDef Name
------------------------------------------------------------------------------
00007ffd1b185b28 0x02000002 ConsoleApp12.Program

Types referenced in this module

              MT            TypeRef Name
------------------------------------------------------------------------------
00007ffd74095dd8 0x02000013 System.Object
00007ffd74110ec0 0x02000017 System.TimeSpan
00007ffd74116690 0x02000018 System.Threading.CancellationTokenSource
00007ffd74117030 0x02000019 System.Nullable`1
00007ffd74118ad8 0x0200001a System.Security.Principal.WindowsIdentity
00007ffd74114d38 0x0200001b System.IO.FileStream
00007ffd6fe7be98 0x0200001c System.Diagnostics.Stopwatch
00007ffd740849e0 0x02000024 System.Console
00007ffd7409aea8 0x02000025 System.Int64
0:000> !DumpMT /d 00007ffd1b185b28
EEClass:         00007ffd1b1826d0
Module:          00007ffd1b184148
Name:            ConsoleApp12.Program
mdToken:         0000000002000002
File:            C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\bin\x64\Release\ConsoleApp12.exe
BaseSize:        0x18
ComponentSize:   0x0
Slots in VTable: 12
Number of IFaces in IFaceMap: 0
0:000> !DumpMT -MD 00007ffd1b185b28
EEClass:         00007ffd1b1826d0
Module:          00007ffd1b184148
Name:            ConsoleApp12.Program
mdToken:         0000000002000002
File:            C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\bin\x64\Release\ConsoleApp12.exe
BaseSize:        0x18
ComponentSize:   0x0
Slots in VTable: 12
Number of IFaces in IFaceMap: 0
--------------------------------------
MethodDesc Table
           Entry       MethodDesc    JIT Name
00007ffd745f3450 00007ffd74078de8 PreJIT System.Object.ToString()
00007ffd7460dc60 00007ffd7423c180 PreJIT System.Object.Equals(System.Object)
00007ffd745f3090 00007ffd7423c1a8 PreJIT System.Object.GetHashCode()
00007ffd745f0420 00007ffd7423c1b0 PreJIT System.Object.Finalize()
00007ffd1b290500 00007ffd1b185b10   NONE ConsoleApp12.Program..cctor()
00007ffd1b2904f0 00007ffd1b185b08   NONE ConsoleApp12.Program..ctor()
00007ffd1b290490 00007ffd1b185a70   NONE ConsoleApp12.Program.WaitForSingleObject(IntPtr, UInt32)
00007ffd1b2904a0 00007ffd1b185ab8   NONE ConsoleApp12.Program.B(System.Object)
00007ffd1b2904b0 00007ffd1b185ac8   NONE ConsoleApp12.Program.A(System.Object)
00007ffd1b290890 00007ffd1b185ad8    JIT ConsoleApp12.Program.Main(System.String[])
00007ffd1b2908f0 00007ffd1b185ae8    JIT ConsoleApp12.Program.TestSpeedInt32()
00007ffd1b290ae0 00007ffd1b185af8    JIT ConsoleApp12.Program.TestSpeedInt64()
0:000> !DumpMD /d 00007ffd1b185af8
Method Name:  ConsoleApp12.Program.TestSpeedInt64()
Class:        00007ffd1b1826d0
MethodTable:  00007ffd1b185b28
mdToken:      0000000006000006
Module:       00007ffd1b184148
IsJitted:     yes
CodeAddr:     00007ffd1b290ae0
Transparency: Critical
  x64
  ConsoleApp12.Program.TestSpeedInt64
0:000> !U /d 00007ffd1b290ae0
Normal JIT generated code
ConsoleApp12.Program.TestSpeedInt64()
Begin 00007ffd1b290ae0, size 1d2
*** WARNING: Unable to verify checksum for C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\bin\x64\Release\ConsoleApp12.exe
C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 206:
>>> 00007ffd`1b290ae0 55              push    rbp
00007ffd`1b290ae1 4157            push    r15
00007ffd`1b290ae3 4156            push    r14
00007ffd`1b290ae5 4155            push    r13
00007ffd`1b290ae7 4154            push    r12
00007ffd`1b290ae9 57              push    rdi
00007ffd`1b290aea 56              push    rsi
00007ffd`1b290aeb 53              push    rbx
00007ffd`1b290aec 4883ec48        sub     rsp,48h
00007ffd`1b290af0 488d6c2420      lea     rbp,[rsp+20h]
00007ffd`1b290af5 33c0            xor     eax,eax
00007ffd`1b290af7 48894500        mov     qword ptr [rbp],rax
00007ffd`1b290afb 48894520        mov     qword ptr [rbp+20h],rax
00007ffd`1b290aff 48896520        mov     qword ptr [rbp+20h],rsp
00007ffd`1b290b03 48b8f245d3bc9c3b0000 mov rax,3B9CBCD345F2h
00007ffd`1b290b0d 48894500        mov     qword ptr [rbp],rax
00007ffd`1b290b11 33f6            xor     esi,esi
00007ffd`1b290b13 33ff            xor     edi,edi
00007ffd`1b290b15 33db            xor     ebx,ebx
00007ffd`1b290b17 4533f6          xor     r14d,r14d
00007ffd`1b290b1a 4533ff          xor     r15d,r15d
00007ffd`1b290b1d 4533e4          xor     r12d,r12d
00007ffd`1b290b20 4533ed          xor     r13d,r13d
00007ffd`1b290b23 33c0            xor     eax,eax
00007ffd`1b290b25 48894518        mov     qword ptr [rbp+18h],rax

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 207:
*** WARNING: Unable to verify checksum for C:\Windows\assembly\NativeImages_v4.0.30319_64\System\6aaf038fc5a894ddf3cbce94407fb772\System.ni.dll
00007ffd`1b290b29 48b998bee76ffd7f0000 mov rcx,offset System_ni+0x7be98 (00007ffd`6fe7be98) (MT: System.Diagnostics.Stopwatch)
00007ffd`1b290b33 e8081a535f      call    clr!JIT_TrialAllocSFastMP_InlineGetThread (00007ffd`7a7c2540)
00007ffd`1b290b38 33d2            xor     edx,edx
00007ffd`1b290b3a 48895008        mov     qword ptr [rax+8],rdx
00007ffd`1b290b3e c6401800        mov     byte ptr [rax+18h],0
00007ffd`1b290b42 48895010        mov     qword ptr [rax+10h],rdx
00007ffd`1b290b46 48894508        mov     qword ptr [rbp+8],rax
00007ffd`1b290b4a 80781800        cmp     byte ptr [rax+18h],0
00007ffd`1b290b4e 7515            jne     00007ffd`1b290b65
00007ffd`1b290b50 e8db8cea54      call    System_ni+0x339830 (00007ffd`70139830) (System.Diagnostics.Stopwatch.GetTimestamp(), mdToken: 00000000060030f3)
00007ffd`1b290b55 488b5508        mov     rdx,qword ptr [rbp+8]
00007ffd`1b290b59 48894210        mov     qword ptr [rdx+10h],rax
00007ffd`1b290b5d c6421801        mov     byte ptr [rdx+18h],1
00007ffd`1b290b61 48895508        mov     qword ptr [rbp+8],rdx
00007ffd`1b290b65 488b4508        mov     rax,qword ptr [rbp+8]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 208:
00007ffd`1b290b69 33c9            xor     ecx,ecx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 210:
00007ffd`1b290b6b 488b5518        mov     rdx,qword ptr [rbp+18h]
00007ffd`1b290b6f 48ffc2          inc     rdx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 211:
00007ffd`1b290b72 49ffc5          inc     r13

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 212:
00007ffd`1b290b75 49ffc4          inc     r12

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 213:
00007ffd`1b290b78 49ffc7          inc     r15

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 214:
00007ffd`1b290b7b 49ffc6          inc     r14

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 215:
00007ffd`1b290b7e 48ffc3          inc     rbx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 216:
00007ffd`1b290b81 48ffc7          inc     rdi

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 217:
00007ffd`1b290b84 48ffc6          inc     rsi

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 208:
00007ffd`1b290b87 ffc1            inc     ecx
00007ffd`1b290b89 81f980969800    cmp     ecx,989680h
00007ffd`1b290b8f 48895518        mov     qword ptr [rbp+18h],rdx
00007ffd`1b290b93 7cd6            jl      00007ffd`1b290b6b

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 219:
00007ffd`1b290b95 48894510        mov     qword ptr [rbp+10h],rax
00007ffd`1b290b99 488bc8          mov     rcx,rax
00007ffd`1b290b9c e80f33e554      call    System_ni+0x2e3eb0 (00007ffd`700e3eb0) (System.Diagnostics.Stopwatch.Stop(), mdToken: 00000000060030ec)
00007ffd`1b290ba1 488b4d10        mov     rcx,qword ptr [rbp+10h]
00007ffd`1b290ba5 e8361fe754      call    System_ni+0x302ae0 (00007ffd`70102ae0) (System.Diagnostics.Stopwatch.GetRawElapsedTicks(), mdToken: 00000000060030f4)
00007ffd`1b290baa 488bf0          mov     rsi,rax

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 222:
00007ffd`1b290bad 33c0            xor     eax,eax
00007ffd`1b290baf 488b7d10        mov     rdi,qword ptr [rbp+10h]
00007ffd`1b290bb3 48894708        mov     qword ptr [rdi+8],rax
00007ffd`1b290bb7 e8748cea54      call    System_ni+0x339830 (00007ffd`70139830) (System.Diagnostics.Stopwatch.GetTimestamp(), mdToken: 00000000060030f3)
00007ffd`1b290bbc 48894710        mov     qword ptr [rdi+10h],rax
00007ffd`1b290bc0 c6471801        mov     byte ptr [rdi+18h],1

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 223:
00007ffd`1b290bc4 4883c420        add     rsp,20h
00007ffd`1b290bc8 b904000000      mov     ecx,4
00007ffd`1b290bcd 6a00            push    0
00007ffd`1b290bcf 6a00            push    0
00007ffd`1b290bd1 48ffc9          dec     rcx
00007ffd`1b290bd4 75f7            jne     00007ffd`1b290bcd
00007ffd`1b290bd6 4883ec20        sub     rsp,20h
00007ffd`1b290bda 488d4c2420      lea     rcx,[rsp+20h]
00007ffd`1b290bdf 48896520        mov     qword ptr [rbp+20h],rsp

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 224:
00007ffd`1b290be3 33c0            xor     eax,eax
00007ffd`1b290be5 488d5108        lea     rdx,[rcx+8]
00007ffd`1b290be9 4c8d4110        lea     r8,[rcx+10h]
00007ffd`1b290bed 4c8d4918        lea     r9,[rcx+18h]
00007ffd`1b290bf1 4c8d5120        lea     r10,[rcx+20h]
00007ffd`1b290bf5 4c8d5928        lea     r11,[rcx+28h]
00007ffd`1b290bf9 488d5930        lea     rbx,[rcx+30h]
00007ffd`1b290bfd 4c8d7138        lea     r14,[rcx+38h]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 226:
00007ffd`1b290c01 48ff01          inc     qword ptr [rcx]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 227:
00007ffd`1b290c04 4c8bfa          mov     r15,rdx
00007ffd`1b290c07 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 228:
00007ffd`1b290c0a 4d8bf8          mov     r15,r8
00007ffd`1b290c0d 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 229:
00007ffd`1b290c10 4d8bf9          mov     r15,r9
00007ffd`1b290c13 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 230:
00007ffd`1b290c16 4d8bfa          mov     r15,r10
00007ffd`1b290c19 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 231:
00007ffd`1b290c1c 4d8bfb          mov     r15,r11
00007ffd`1b290c1f 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 232:
00007ffd`1b290c22 4c8bfb          mov     r15,rbx
00007ffd`1b290c25 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 233:
00007ffd`1b290c28 4d8bfe          mov     r15,r14
00007ffd`1b290c2b 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 224:
00007ffd`1b290c2e ffc0            inc     eax
00007ffd`1b290c30 3d80969800      cmp     eax,989680h
00007ffd`1b290c35 7cca            jl      00007ffd`1b290c01

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 235:
00007ffd`1b290c37 488bcf          mov     rcx,rdi
00007ffd`1b290c3a e87132e554      call    System_ni+0x2e3eb0 (00007ffd`700e3eb0) (System.Diagnostics.Stopwatch.Stop(), mdToken: 00000000060030ec)
00007ffd`1b290c3f 488bcf          mov     rcx,rdi
00007ffd`1b290c42 e8991ee754      call    System_ni+0x302ae0 (00007ffd`70102ae0) (System.Diagnostics.Stopwatch.GetRawElapsedTicks(), mdToken: 00000000060030f4)
00007ffd`1b290c47 488bf8          mov     rdi,rax

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 237:
00007ffd`1b290c4a 48b9a8ae0974fd7f0000 mov rcx,offset mscorlib_ni!System.Reflection.RuntimeMethodInfo.get_IsOverloaded()$##600464C <PERF> (mscorlib_ni+0x2aea8) (00007ffd`7409aea8)
00007ffd`1b290c54 e8e718535f      call    clr!JIT_TrialAllocSFastMP_InlineGetThread (00007ffd`7a7c2540)
00007ffd`1b290c59 488bd8          mov     rbx,rax
00007ffd`1b290c5c 48897308        mov     qword ptr [rbx+8],rsi
00007ffd`1b290c60 48b9a8ae0974fd7f0000 mov rcx,offset mscorlib_ni!System.Reflection.RuntimeMethodInfo.get_IsOverloaded()$##600464C <PERF> (mscorlib_ni+0x2aea8) (00007ffd`7409aea8)
00007ffd`1b290c6a e8d118535f      call    clr!JIT_TrialAllocSFastMP_InlineGetThread (00007ffd`7a7c2540)
00007ffd`1b290c6f 4c8bc0          mov     r8,rax
00007ffd`1b290c72 49897808        mov     qword ptr [r8+8],rdi
00007ffd`1b290c76 488bd3          mov     rdx,rbx
00007ffd`1b290c79 48b9903600102c020000 mov rcx,22C10003690h
00007ffd`1b290c83 488b09          mov     rcx,qword ptr [rcx]
00007ffd`1b290c86 e8c5923859      call    mscorlib_ni!System.Console.WriteLine(System.String, System.Object, System.Object)$##6000B7B (00007ffd`74619f50)

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 238:
00007ffd`1b290c8b 48b9f245d3bc9c3b0000 mov rcx,3B9CBCD345F2h
00007ffd`1b290c95 48394d00        cmp     qword ptr [rbp],rcx
00007ffd`1b290c99 7405            je      00007ffd`1b290ca0
00007ffd`1b290c9b e85054865f      call    clr!DoJITFailFast (00007ffd`7aaf60f0)
00007ffd`1b290ca0 90              nop
00007ffd`1b290ca1 488d6528        lea     rsp,[rbp+28h]
00007ffd`1b290ca5 5b              pop     rbx
00007ffd`1b290ca6 5e              pop     rsi
00007ffd`1b290ca7 5f              pop     rdi
00007ffd`1b290ca8 415c            pop     r12
00007ffd`1b290caa 415d            pop     r13
00007ffd`1b290cac 415e            pop     r14
00007ffd`1b290cae 415f            pop     r15
00007ffd`1b290cb0 5d              pop     rbp
00007ffd`1b290cb1 c3              ret

  ConsoleApp12.Program.TestSpeedInt32()
0:000> !U /d 00007ffd1b290ae0
Normal JIT generated code
ConsoleApp12.Program.TestSpeedInt64()
Begin 00007ffd1b290ae0, size 1d2
*** WARNING: Unable to verify checksum for C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\bin\x64\Release\ConsoleApp12.exe

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 206:
>>> 00007ffd`1b290ae0 55              push    rbp
00007ffd`1b290ae1 4157            push    r15
00007ffd`1b290ae3 4156            push    r14
00007ffd`1b290ae5 4155            push    r13
00007ffd`1b290ae7 4154            push    r12
00007ffd`1b290ae9 57              push    rdi
00007ffd`1b290aea 56              push    rsi
00007ffd`1b290aeb 53              push    rbx
00007ffd`1b290aec 4883ec48        sub     rsp,48h
00007ffd`1b290af0 488d6c2420      lea     rbp,[rsp+20h]
00007ffd`1b290af5 33c0            xor     eax,eax
00007ffd`1b290af7 48894500        mov     qword ptr [rbp],rax
00007ffd`1b290afb 48894520        mov     qword ptr [rbp+20h],rax
00007ffd`1b290aff 48896520        mov     qword ptr [rbp+20h],rsp
00007ffd`1b290b03 48b8f245d3bc9c3b0000 mov rax,3B9CBCD345F2h
00007ffd`1b290b0d 48894500        mov     qword ptr [rbp],rax
00007ffd`1b290b11 33f6            xor     esi,esi
00007ffd`1b290b13 33ff            xor     edi,edi
00007ffd`1b290b15 33db            xor     ebx,ebx
00007ffd`1b290b17 4533f6          xor     r14d,r14d
00007ffd`1b290b1a 4533ff          xor     r15d,r15d
00007ffd`1b290b1d 4533e4          xor     r12d,r12d
00007ffd`1b290b20 4533ed          xor     r13d,r13d
00007ffd`1b290b23 33c0            xor     eax,eax
00007ffd`1b290b25 48894518        mov     qword ptr [rbp+18h],rax

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 207:
*** WARNING: Unable to verify checksum for C:\Windows\assembly\NativeImages_v4.0.30319_64\System\6aaf038fc5a894ddf3cbce94407fb772\System.ni.dll
00007ffd`1b290b29 48b998bee76ffd7f0000 mov rcx,offset System_ni+0x7be98 (00007ffd`6fe7be98) (MT: System.Diagnostics.Stopwatch)
00007ffd`1b290b33 e8081a535f      call    clr!JIT_TrialAllocSFastMP_InlineGetThread (00007ffd`7a7c2540)
00007ffd`1b290b38 33d2            xor     edx,edx
00007ffd`1b290b3a 48895008        mov     qword ptr [rax+8],rdx
00007ffd`1b290b3e c6401800        mov     byte ptr [rax+18h],0
00007ffd`1b290b42 48895010        mov     qword ptr [rax+10h],rdx
00007ffd`1b290b46 48894508        mov     qword ptr [rbp+8],rax
00007ffd`1b290b4a 80781800        cmp     byte ptr [rax+18h],0
00007ffd`1b290b4e 7515            jne     00007ffd`1b290b65
00007ffd`1b290b50 e8db8cea54      call    System_ni+0x339830 (00007ffd`70139830) (System.Diagnostics.Stopwatch.GetTimestamp(), mdToken: 00000000060030f3)
00007ffd`1b290b55 488b5508        mov     rdx,qword ptr [rbp+8]
00007ffd`1b290b59 48894210        mov     qword ptr [rdx+10h],rax
00007ffd`1b290b5d c6421801        mov     byte ptr [rdx+18h],1
00007ffd`1b290b61 48895508        mov     qword ptr [rbp+8],rdx
00007ffd`1b290b65 488b4508        mov     rax,qword ptr [rbp+8]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 208:
00007ffd`1b290b69 33c9            xor     ecx,ecx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 210:
00007ffd`1b290b6b 488b5518        mov     rdx,qword ptr [rbp+18h]
00007ffd`1b290b6f 48ffc2          inc     rdx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 211:
00007ffd`1b290b72 49ffc5          inc     r13

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 212:
00007ffd`1b290b75 49ffc4          inc     r12

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 213:
00007ffd`1b290b78 49ffc7          inc     r15

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 214:
00007ffd`1b290b7b 49ffc6          inc     r14

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 215:
00007ffd`1b290b7e 48ffc3          inc     rbx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 216:
00007ffd`1b290b81 48ffc7          inc     rdi

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 217:
00007ffd`1b290b84 48ffc6          inc     rsi

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 208:
00007ffd`1b290b87 ffc1            inc     ecx
00007ffd`1b290b89 81f980969800    cmp     ecx,989680h
00007ffd`1b290b8f 48895518        mov     qword ptr [rbp+18h],rdx
00007ffd`1b290b93 7cd6            jl      00007ffd`1b290b6b

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 219:
00007ffd`1b290b95 48894510        mov     qword ptr [rbp+10h],rax
00007ffd`1b290b99 488bc8          mov     rcx,rax
00007ffd`1b290b9c e80f33e554      call    System_ni+0x2e3eb0 (00007ffd`700e3eb0) (System.Diagnostics.Stopwatch.Stop(), mdToken: 00000000060030ec)
00007ffd`1b290ba1 488b4d10        mov     rcx,qword ptr [rbp+10h]
00007ffd`1b290ba5 e8361fe754      call    System_ni+0x302ae0 (00007ffd`70102ae0) (System.Diagnostics.Stopwatch.GetRawElapsedTicks(), mdToken: 00000000060030f4)
00007ffd`1b290baa 488bf0          mov     rsi,rax

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 222:
00007ffd`1b290bad 33c0            xor     eax,eax
00007ffd`1b290baf 488b7d10        mov     rdi,qword ptr [rbp+10h]
00007ffd`1b290bb3 48894708        mov     qword ptr [rdi+8],rax
00007ffd`1b290bb7 e8748cea54      call    System_ni+0x339830 (00007ffd`70139830) (System.Diagnostics.Stopwatch.GetTimestamp(), mdToken: 00000000060030f3)
00007ffd`1b290bbc 48894710        mov     qword ptr [rdi+10h],rax
00007ffd`1b290bc0 c6471801        mov     byte ptr [rdi+18h],1

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 223:
00007ffd`1b290bc4 4883c420        add     rsp,20h
00007ffd`1b290bc8 b904000000      mov     ecx,4
00007ffd`1b290bcd 6a00            push    0
00007ffd`1b290bcf 6a00            push    0
00007ffd`1b290bd1 48ffc9          dec     rcx
00007ffd`1b290bd4 75f7            jne     00007ffd`1b290bcd
00007ffd`1b290bd6 4883ec20        sub     rsp,20h
00007ffd`1b290bda 488d4c2420      lea     rcx,[rsp+20h]
00007ffd`1b290bdf 48896520        mov     qword ptr [rbp+20h],rsp

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 224:
00007ffd`1b290be3 33c0            xor     eax,eax
00007ffd`1b290be5 488d5108        lea     rdx,[rcx+8]
00007ffd`1b290be9 4c8d4110        lea     r8,[rcx+10h]
00007ffd`1b290bed 4c8d4918        lea     r9,[rcx+18h]
00007ffd`1b290bf1 4c8d5120        lea     r10,[rcx+20h]
00007ffd`1b290bf5 4c8d5928        lea     r11,[rcx+28h]
00007ffd`1b290bf9 488d5930        lea     rbx,[rcx+30h]
00007ffd`1b290bfd 4c8d7138        lea     r14,[rcx+38h]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 226:
00007ffd`1b290c01 48ff01          inc     qword ptr [rcx]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 227:
00007ffd`1b290c04 4c8bfa          mov     r15,rdx
00007ffd`1b290c07 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 228:
00007ffd`1b290c0a 4d8bf8          mov     r15,r8
00007ffd`1b290c0d 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 229:
00007ffd`1b290c10 4d8bf9          mov     r15,r9
00007ffd`1b290c13 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 230:
00007ffd`1b290c16 4d8bfa          mov     r15,r10
00007ffd`1b290c19 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 231:
00007ffd`1b290c1c 4d8bfb          mov     r15,r11
00007ffd`1b290c1f 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 232:
00007ffd`1b290c22 4c8bfb          mov     r15,rbx
00007ffd`1b290c25 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 233:
00007ffd`1b290c28 4d8bfe          mov     r15,r14
00007ffd`1b290c2b 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 224:
00007ffd`1b290c2e ffc0            inc     eax
00007ffd`1b290c30 3d80969800      cmp     eax,989680h
00007ffd`1b290c35 7cca            jl      00007ffd`1b290c01

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 235:
00007ffd`1b290c37 488bcf          mov     rcx,rdi
00007ffd`1b290c3a e87132e554      call    System_ni+0x2e3eb0 (00007ffd`700e3eb0) (System.Diagnostics.Stopwatch.Stop(), mdToken: 00000000060030ec)
00007ffd`1b290c3f 488bcf          mov     rcx,rdi
00007ffd`1b290c42 e8991ee754      call    System_ni+0x302ae0 (00007ffd`70102ae0) (System.Diagnostics.Stopwatch.GetRawElapsedTicks(), mdToken: 00000000060030f4)
00007ffd`1b290c47 488bf8          mov     rdi,rax

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 237:
00007ffd`1b290c4a 48b9a8ae0974fd7f0000 mov rcx,offset mscorlib_ni!System.Reflection.RuntimeMethodInfo.get_IsOverloaded()$##600464C <PERF> (mscorlib_ni+0x2aea8) (00007ffd`7409aea8)
00007ffd`1b290c54 e8e718535f      call    clr!JIT_TrialAllocSFastMP_InlineGetThread (00007ffd`7a7c2540)
00007ffd`1b290c59 488bd8          mov     rbx,rax
00007ffd`1b290c5c 48897308        mov     qword ptr [rbx+8],rsi
00007ffd`1b290c60 48b9a8ae0974fd7f0000 mov rcx,offset mscorlib_ni!System.Reflection.RuntimeMethodInfo.get_IsOverloaded()$##600464C <PERF> (mscorlib_ni+0x2aea8) (00007ffd`7409aea8)
00007ffd`1b290c6a e8d118535f      call    clr!JIT_TrialAllocSFastMP_InlineGetThread (00007ffd`7a7c2540)
00007ffd`1b290c6f 4c8bc0          mov     r8,rax
00007ffd`1b290c72 49897808        mov     qword ptr [r8+8],rdi
00007ffd`1b290c76 488bd3          mov     rdx,rbx
00007ffd`1b290c79 48b9903600102c020000 mov rcx,22C10003690h
00007ffd`1b290c83 488b09          mov     rcx,qword ptr [rcx]
00007ffd`1b290c86 e8c5923859      call    mscorlib_ni!System.Console.WriteLine(System.String, System.Object, System.Object)$##6000B7B (00007ffd`74619f50)

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 238:
00007ffd`1b290c8b 48b9f245d3bc9c3b0000 mov rcx,3B9CBCD345F2h
00007ffd`1b290c95 48394d00        cmp     qword ptr [rbp],rcx
00007ffd`1b290c99 7405            je      00007ffd`1b290ca0
00007ffd`1b290c9b e85054865f      call    clr!DoJITFailFast (00007ffd`7aaf60f0)
00007ffd`1b290ca0 90              nop
00007ffd`1b290ca1 488d6528        lea     rsp,[rbp+28h]
00007ffd`1b290ca5 5b              pop     rbx
00007ffd`1b290ca6 5e              pop     rsi
00007ffd`1b290ca7 5f              pop     rdi
00007ffd`1b290ca8 415c            pop     r12
00007ffd`1b290caa 415d            pop     r13
00007ffd`1b290cac 415e            pop     r14
00007ffd`1b290cae 415f            pop     r15
00007ffd`1b290cb0 5d              pop     rbp
00007ffd`1b290cb1 c3              ret
  x86
  ConsoleApp12.Program.TestSpeedInt64()
0:007> !DumpMD /d 031f4e14
Method Name:  ConsoleApp12.Program.TestSpeedInt64()
Class:        031f1398
MethodTable:  031f4e38
mdToken:      06000006
Module:       031f4044
IsJitted:     yes
CodeAddr:     032809f0
Transparency: Critical
0:007> !U /d 032809f0
Normal JIT generated code
ConsoleApp12.Program.TestSpeedInt64()
Begin 032809f0, size 1b1

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 206:
>>> 032809f0 55              push    ebp
032809f1 8bec            mov     ebp,esp
032809f3 57              push    edi
032809f4 56              push    esi
032809f5 53              push    ebx
032809f6 83ec18          sub     esp,18h
032809f9 33c0            xor     eax,eax
032809fb 8945dc          mov     dword ptr [ebp-24h],eax
032809fe 8945f0          mov     dword ptr [ebp-10h],eax
03280a01 8965f0          mov     dword ptr [ebp-10h],esp
03280a04 c745dcf8f90bd5  mov     dword ptr [ebp-24h],0D50BF9F8h

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 207:
03280a0b b97453236f      mov     ecx,offset System_ni+0x45374 (6f235374) (MT: System.Diagnostics.Stopwatch)
03280a10 e8b32674fe      call    019c30c8 (JitHelp: CORINFO_HELP_NEWSFAST)
03280a15 8bf0            mov     esi,eax
03280a17 c7460400000000  mov     dword ptr [esi+4],0
03280a1e c7460800000000  mov     dword ptr [esi+8],0
03280a25 c6461400        mov     byte ptr [esi+14h],0
03280a29 c7460c00000000  mov     dword ptr [esi+0Ch],0
03280a30 c7461000000000  mov     dword ptr [esi+10h],0
03280a37 807e1400        cmp     byte ptr [esi+14h],0
03280a3b 750f            jne     03280a4c
03280a3d e8ee50176c      call    System_ni+0x205b30 (6f3f5b30) (System.Diagnostics.Stopwatch.GetTimestamp(), mdToken: 060030f3)
03280a42 89460c          mov     dword ptr [esi+0Ch],eax
03280a45 895610          mov     dword ptr [esi+10h],edx
03280a48 c6461401        mov     byte ptr [esi+14h],1

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 208:
03280a4c 33c0            xor     eax,eax
03280a4e 40              inc     eax
03280a4f 3d80969800      cmp     eax,989680h
03280a54 7cf8            jl      03280a4e

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 219:
03280a56 8bce            mov     ecx,esi
03280a58 e8d32e136c      call    System_ni+0x1c3930 (6f3b3930) (System.Diagnostics.Stopwatch.Stop(), mdToken: 060030ec)
03280a5d 8bce            mov     ecx,esi
03280a5f e8cc9d146c      call    System_ni+0x1da830 (6f3ca830) (System.Diagnostics.Stopwatch.GetRawElapsedTicks(), mdToken: 060030f4)
03280a64 8945e8          mov     dword ptr [ebp-18h],eax
03280a67 8955ec          mov     dword ptr [ebp-14h],edx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 222:
03280a6a c7460400000000  mov     dword ptr [esi+4],0
03280a71 c7460800000000  mov     dword ptr [esi+8],0
03280a78 e8b350176c      call    System_ni+0x205b30 (6f3f5b30) (System.Diagnostics.Stopwatch.GetTimestamp(), mdToken: 060030f3)
03280a7d 89460c          mov     dword ptr [esi+0Ch],eax
03280a80 895610          mov     dword ptr [esi+10h],edx
03280a83 c6461401        mov     byte ptr [esi+14h],1

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 223:
03280a87 b810000000      mov     eax,10h
03280a8c 6a00            push    0
03280a8e 48              dec     eax
03280a8f 75fb            jne     03280a8c
03280a91 8bc4            mov     eax,esp
03280a93 8965f0          mov     dword ptr [ebp-10h],esp
03280a96 8bc8            mov     ecx,eax

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 224:
03280a98 33db            xor     ebx,ebx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 226:
03280a9a 8b01            mov     eax,dword ptr [ecx]
03280a9c 8b5104          mov     edx,dword ptr [ecx+4]
03280a9f 83c001          add     eax,1
03280aa2 83d200          adc     edx,0
03280aa5 8901            mov     dword ptr [ecx],eax
03280aa7 895104          mov     dword ptr [ecx+4],edx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 227:
03280aaa 8b4108          mov     eax,dword ptr [ecx+8]
03280aad 8b510c          mov     edx,dword ptr [ecx+0Ch]
03280ab0 83c001          add     eax,1
03280ab3 83d200          adc     edx,0
03280ab6 894108          mov     dword ptr [ecx+8],eax
03280ab9 89510c          mov     dword ptr [ecx+0Ch],edx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 228:
03280abc 8d7910          lea     edi,[ecx+10h]
03280abf 8b07            mov     eax,dword ptr [edi]
03280ac1 8b5704          mov     edx,dword ptr [edi+4]
03280ac4 83c001          add     eax,1
03280ac7 83d200          adc     edx,0
03280aca 8907            mov     dword ptr [edi],eax
03280acc 895704          mov     dword ptr [edi+4],edx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 229:
03280acf 8d7918          lea     edi,[ecx+18h]
03280ad2 8b07            mov     eax,dword ptr [edi]
03280ad4 8b5704          mov     edx,dword ptr [edi+4]
03280ad7 83c001          add     eax,1
03280ada 83d200          adc     edx,0
03280add 8907            mov     dword ptr [edi],eax
03280adf 895704          mov     dword ptr [edi+4],edx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 230:
03280ae2 8d7920          lea     edi,[ecx+20h]
03280ae5 8b07            mov     eax,dword ptr [edi]
03280ae7 8b5704          mov     edx,dword ptr [edi+4]
03280aea 83c001          add     eax,1
03280aed 83d200          adc     edx,0
03280af0 8907            mov     dword ptr [edi],eax
03280af2 895704          mov     dword ptr [edi+4],edx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 231:
03280af5 8d7928          lea     edi,[ecx+28h]
03280af8 8b07            mov     eax,dword ptr [edi]
03280afa 8b5704          mov     edx,dword ptr [edi+4]
03280afd 83c001          add     eax,1
03280b00 83d200          adc     edx,0
03280b03 8907            mov     dword ptr [edi],eax
03280b05 895704          mov     dword ptr [edi+4],edx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 232:
03280b08 8d7930          lea     edi,[ecx+30h]
03280b0b 8b07            mov     eax,dword ptr [edi]
03280b0d 8b5704          mov     edx,dword ptr [edi+4]
03280b10 83c001          add     eax,1
03280b13 83d200          adc     edx,0
03280b16 8907            mov     dword ptr [edi],eax
03280b18 895704          mov     dword ptr [edi+4],edx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 233:
03280b1b 8d7938          lea     edi,[ecx+38h]
03280b1e 8b07            mov     eax,dword ptr [edi]
03280b20 8b5704          mov     edx,dword ptr [edi+4]
03280b23 83c001          add     eax,1
03280b26 83d200          adc     edx,0
03280b29 8907            mov     dword ptr [edi],eax
03280b2b 895704          mov     dword ptr [edi+4],edx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 224:
03280b2e 43              inc     ebx
03280b2f 81fb80969800    cmp     ebx,989680h
03280b35 0f8c5fffffff    jl      03280a9a

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 235:
03280b3b 8bce            mov     ecx,esi
03280b3d e8ee2d136c      call    System_ni+0x1c3930 (6f3b3930) (System.Diagnostics.Stopwatch.Stop(), mdToken: 060030ec)
03280b42 8bce            mov     ecx,esi
03280b44 e8e79c146c      call    System_ni+0x1da830 (6f3ca830) (System.Diagnostics.Stopwatch.GetRawElapsedTicks(), mdToken: 060030f4)
03280b49 8955e4          mov     dword ptr [ebp-1Ch],edx
03280b4c 8bd8            mov     ebx,eax

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 237:
03280b4e b90c15cf6f      mov     ecx,offset mscorlib_ni!System.Text.Encoding.GetEncodingCodePage(Int32)$##6006719 <PERF> (mscorlib_ni+0x1150c) (6fcf150c)
03280b53 e8702574fe      call    019c30c8 (JitHelp: CORINFO_HELP_NEWSFAST)
03280b58 8bf0            mov     esi,eax
03280b5a b90c15cf6f      mov     ecx,offset mscorlib_ni!System.Text.Encoding.GetEncodingCodePage(Int32)$##6006719 <PERF> (mscorlib_ni+0x1150c) (6fcf150c)
03280b5f e8642574fe      call    019c30c8 (JitHelp: CORINFO_HELP_NEWSFAST)
03280b64 8bc8            mov     ecx,eax
03280b66 8b3d4c233f04    mov     edi,dword ptr ds:[43F234Ch] ("elapsed for variable =  {0:D} \tarray = {1:D}")
03280b6c 8b45e8          mov     eax,dword ptr [ebp-18h]
03280b6f 8b55ec          mov     edx,dword ptr [ebp-14h]
03280b72 894604          mov     dword ptr [esi+4],eax
03280b75 895608          mov     dword ptr [esi+8],edx
03280b78 8bd6            mov     edx,esi
03280b7a 8b45e4          mov     eax,dword ptr [ebp-1Ch]
03280b7d 895904          mov     dword ptr [ecx+4],ebx
03280b80 894108          mov     dword ptr [ecx+8],eax
03280b83 51              push    ecx
03280b84 8bcf            mov     ecx,edi
03280b86 e82930e46c      call    mscorlib_ni!System.Console.WriteLine(System.String, System.Object, System.Object)$##6000B7B (700c3bb4)

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 238:
03280b8b 817ddcf8f90bd5  cmp     dword ptr [ebp-24h],0D50BF9F8h
03280b92 7405            je      03280b99
03280b94 e8f7ee826e      call    clr!JIT_FailFast (71aafa90)
03280b99 8d65f4          lea     esp,[ebp-0Ch]
03280b9c 5b              pop     ebx
03280b9d 5e              pop     esi
03280b9e 5f              pop     edi
03280b9f 5d              pop     ebp
03280ba0 c3              ret


  ConsoleApp12.Program.TestSpeedInt32()
0:007> !DumpMD /d 031f4e08
Method Name:  ConsoleApp12.Program.TestSpeedInt32()
Class:        031f1398
MethodTable:  031f4e38
mdToken:      06000005
Module:       031f4044
IsJitted:     yes
CodeAddr:     03280890
Transparency: Critical
0:007> !U /d 03280890
Normal JIT generated code
ConsoleApp12.Program.TestSpeedInt32()
Begin 03280890, size 149
*** WARNING: Unable to verify checksum for C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\bin\x86\Release\ConsoleApp12.exe

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 170:
>>> 03280890 55              push    ebp
03280891 8bec            mov     ebp,esp
03280893 57              push    edi
03280894 56              push    esi
03280895 53              push    ebx
03280896 83ec18          sub     esp,18h
03280899 33c0            xor     eax,eax
0328089b 8945dc          mov     dword ptr [ebp-24h],eax
0328089e 8945f0          mov     dword ptr [ebp-10h],eax
032808a1 8965f0          mov     dword ptr [ebp-10h],esp
032808a4 c745dcf8f90bd5  mov     dword ptr [ebp-24h],0D50BF9F8h

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 171:
032808ab b9284f1f03      mov     ecx,31F4F28h
032808b0 ba04050000      mov     edx,504h
032808b5 e8a62b74fe      call    019c3460 (JitHelp: CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE)
*** WARNING: Unable to verify checksum for C:\Windows\assembly\NativeImages_v4.0.30319_32\System\ec6f62a404182f6fb54d32738ecb3684\System.ni.dll
032808ba b97453236f      mov     ecx,offset System_ni+0x45374 (6f235374) (MT: System.Diagnostics.Stopwatch)
032808bf e8042874fe      call    019c30c8 (JitHelp: CORINFO_HELP_NEWSFAST)
032808c4 8bf0            mov     esi,eax
032808c6 c7460400000000  mov     dword ptr [esi+4],0
032808cd c7460800000000  mov     dword ptr [esi+8],0
032808d4 c6461400        mov     byte ptr [esi+14h],0
032808d8 c7460c00000000  mov     dword ptr [esi+0Ch],0
032808df c7461000000000  mov     dword ptr [esi+10h],0
032808e6 807e1400        cmp     byte ptr [esi+14h],0
032808ea 750f            jne     032808fb
032808ec e83f52176c      call    System_ni+0x205b30 (6f3f5b30) (System.Diagnostics.Stopwatch.GetTimestamp(), mdToken: 060030f3)
032808f1 89460c          mov     dword ptr [esi+0Ch],eax
032808f4 895610          mov     dword ptr [esi+10h],edx
032808f7 c6461401        mov     byte ptr [esi+14h],1

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 172:
032808fb 33c0            xor     eax,eax
032808fd 40              inc     eax
032808fe 3d80969800      cmp     eax,989680h
03280903 7cf8            jl      032808fd

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 183:
03280905 8bce            mov     ecx,esi
03280907 e82430136c      call    System_ni+0x1c3930 (6f3b3930) (System.Diagnostics.Stopwatch.Stop(), mdToken: 060030ec)
0328090c 8bce            mov     ecx,esi
0328090e e81d9f146c      call    System_ni+0x1da830 (6f3ca830) (System.Diagnostics.Stopwatch.GetRawElapsedTicks(), mdToken: 060030f4)
03280913 8955ec          mov     dword ptr [ebp-14h],edx
03280916 8bd8            mov     ebx,eax

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 186:
03280918 c7460400000000  mov     dword ptr [esi+4],0
0328091f c7460800000000  mov     dword ptr [esi+8],0
03280926 e80552176c      call    System_ni+0x205b30 (6f3f5b30) (System.Diagnostics.Stopwatch.GetTimestamp(), mdToken: 060030f3)
0328092b 89460c          mov     dword ptr [esi+0Ch],eax
0328092e 895610          mov     dword ptr [esi+10h],edx
03280931 c6461401        mov     byte ptr [esi+14h],1

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 187:
03280935 b808000000      mov     eax,8
0328093a 6a00            push    0
0328093c 48              dec     eax
0328093d 75fb            jne     0328093a
0328093f 8bc4            mov     eax,esp
03280941 8965f0          mov     dword ptr [ebp-10h],esp

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 188:
03280944 33c9            xor     ecx,ecx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 190:
03280946 ff00            inc     dword ptr [eax]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 191:
03280948 ff4004          inc     dword ptr [eax+4]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 192:
0328094b 8d5008          lea     edx,[eax+8]
0328094e ff02            inc     dword ptr [edx]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 193:
03280950 8d500c          lea     edx,[eax+0Ch]
03280953 ff02            inc     dword ptr [edx]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 194:
03280955 8d5010          lea     edx,[eax+10h]
03280958 ff02            inc     dword ptr [edx]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 195:
0328095a 8d5014          lea     edx,[eax+14h]
0328095d ff02            inc     dword ptr [edx]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 196:
0328095f 8d5018          lea     edx,[eax+18h]
03280962 ff02            inc     dword ptr [edx]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 197:
03280964 8d501c          lea     edx,[eax+1Ch]
03280967 ff02            inc     dword ptr [edx]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 188:
03280969 41              inc     ecx
0328096a 81f980969800    cmp     ecx,989680h
03280970 7cd4            jl      03280946

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 199:
03280972 8bce            mov     ecx,esi
03280974 e8b72f136c      call    System_ni+0x1c3930 (6f3b3930) (System.Diagnostics.Stopwatch.Stop(), mdToken: 060030ec)
03280979 8bce            mov     ecx,esi
0328097b e8b09e146c      call    System_ni+0x1da830 (6f3ca830) (System.Diagnostics.Stopwatch.GetRawElapsedTicks(), mdToken: 060030f4)
03280980 8945e0          mov     dword ptr [ebp-20h],eax
03280983 8955e4          mov     dword ptr [ebp-1Ch],edx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 201:
03280986 b90c15cf6f      mov     ecx,offset mscorlib_ni!System.Text.Encoding.GetEncodingCodePage(Int32)$##6006719 <PERF> (mscorlib_ni+0x1150c) (6fcf150c)
0328098b e8382774fe      call    019c30c8 (JitHelp: CORINFO_HELP_NEWSFAST)
03280990 8bf0            mov     esi,eax
03280992 b90c15cf6f      mov     ecx,offset mscorlib_ni!System.Text.Encoding.GetEncodingCodePage(Int32)$##6006719 <PERF> (mscorlib_ni+0x1150c) (6fcf150c)
03280997 e82c2774fe      call    019c30c8 (JitHelp: CORINFO_HELP_NEWSFAST)
0328099c 8bc8            mov     ecx,eax
0328099e 8b3d4c233f04    mov     edi,dword ptr ds:[43F234Ch] ("elapsed for variable =  {0:D} \tarray = {1:D}")
032809a4 8b45ec          mov     eax,dword ptr [ebp-14h]
032809a7 895e04          mov     dword ptr [esi+4],ebx
032809aa 894608          mov     dword ptr [esi+8],eax
032809ad 8b45e0          mov     eax,dword ptr [ebp-20h]
032809b0 8b55e4          mov     edx,dword ptr [ebp-1Ch]
032809b3 894104          mov     dword ptr [ecx+4],eax
032809b6 895108          mov     dword ptr [ecx+8],edx
032809b9 51              push    ecx
032809ba 8bcf            mov     ecx,edi
032809bc 8bd6            mov     edx,esi
032809be e8f131e46c      call    mscorlib_ni!System.Console.WriteLine(System.String, System.Object, System.Object)$##6000B7B (700c3bb4)

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 202:
032809c3 817ddcf8f90bd5  cmp     dword ptr [ebp-24h],0D50BF9F8h
032809ca 7405            je      032809d1
032809cc e8bff0826e      call    clr!JIT_FailFast (71aafa90)
032809d1 8d65f4          lea     esp,[ebp-0Ch]
032809d4 5b              pop     ebx
032809d5 5e              pop     esi
032809d6 5f              pop     edi
032809d7 5d              pop     ebp
032809d8 c3              ret


Всё это получалось так: после получения резульатов на экране (код должен был отджитится) к процессу цеплялся WinDbg64. Не студией потому, что студия вностит коррективы в процесс Jitting'а, а меня тут интересовало то, что пойдёт в релиз — что будет на машине условного пользователя.

Тут на себя обращает внимание вот что:
C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 208:
03280a4c 33c0            xor     eax,eax
03280a4e 40              inc     eax
03280a4f 3d80969800      cmp     eax,989680h
03280a54 7cf8            jl      03280a4e

это x86, как ты видишь. Т.е. цикл есть, а реально инкремента In64 vars нет — соптимизировал.

Тоже самое для In32 vars:
C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 172:
032808fb 33c0            xor     eax,eax
032808fd 40              inc     eax
032808fe 3d80969800      cmp     eax,989680h
03280903 7cf8            jl      032808fd

Самого инкремента переменных нет.

Зато в x64 он честно в цикле проинкрементил все регистры:
C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 208:
00007ffd`1b290b69 33c9            xor     ecx,ecx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 210:
00007ffd`1b290b6b 488b5518        mov     rdx,qword ptr [rbp+18h]
00007ffd`1b290b6f 48ffc2          inc     rdx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 211:
00007ffd`1b290b72 49ffc5          inc     r13

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 212:
00007ffd`1b290b75 49ffc4          inc     r12

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 213:
00007ffd`1b290b78 49ffc7          inc     r15

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 214:
00007ffd`1b290b7b 49ffc6          inc     r14

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 215:
00007ffd`1b290b7e 48ffc3          inc     rbx

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 216:
00007ffd`1b290b81 48ffc7          inc     rdi

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 217:
00007ffd`1b290b84 48ffc6          inc     rsi

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 208:
00007ffd`1b290b87 ffc1            inc     ecx
00007ffd`1b290b89 81f980969800    cmp     ecx,989680h
00007ffd`1b290b8f 48895518        mov     qword ptr [rbp+18h],rdx
00007ffd`1b290b93 7cd6            jl      00007ffd`1b290b6b


В общем, тесты с инкрементом переменных надо переделывать

С массивами при этом ничего неожиданного не произошло. Инкремент элемента массива делается классическим способом:
1)Int64
C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 229:
03280acf 8d7918          lea     edi,[ecx+18h]
03280ad2 8b07            mov     eax,dword ptr [edi]
03280ad4 8b5704          mov     edx,dword ptr [edi+4]
03280ad7 83c001          add     eax,1
03280ada 83d200          adc     edx,0
03280add 8907            mov     dword ptr [edi],eax
03280adf 895704          mov     dword ptr [edi+4],edx

2) Int64 x64 — тоже ничего необычного, за исключением плясок с бубном вокруг регистра R15. Джиттеру наверное очень нравится адресовать элемент массива с помощью именно этого регистра.
C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 230:
00007ffd`1b290c16 4d8bfa          mov     r15,r10
00007ffd`1b290c19 49ff07          inc     qword ptr [r15]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 231:
00007ffd`1b290c1c 4d8bfb          mov     r15,r11
00007ffd`1b290c1f 49ff07          inc     qword ptr [r15]


2)Int32
C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 190:
03280946 ff00            inc     dword ptr [eax]

C:\WorkingSet\sources\ConsoleApp12\ConsoleApp12\Program.cs @ 191:
03280948 ff4004          inc     dword ptr [eax+4]


Показывай, что породил FPC для 64-бит, расскажи условия тестирования.
И наконец прекрати постить текст картинками!!!111111 У меня была идея взять твои результаты, посчитать медиану и стандартную ошибку, но с картинки это сделать невозможно.