Yes, I run the function only once. In fact, the module is JIT-compiled and the function is called once.
I did some more experimenting an the problem is related either to `--predictable` or `--no-liftoff`. Here are the times I get with different configurations: - `--predictable` : 13 ms - `--no-liftoff` : 11 ms - `--predictable --no-liftoff` : 11 ms - default (no additional flags) : 2158 ms The disassembly in default configuration is Liftoff: 0x3835c41b52c0 0 55 push rbp 0x3835c41b52c1 1 4889e5 REX.W movq rbp,rsp 0x3835c41b52c4 4 6a0a push 0xa 0x3835c41b52c6 6 4881ec28000000 REX.W subq rsp,0x28 0x3835c41b52cd d 488975f0 REX.W movq [rbp-0x10],rsi 0x3835c41b52d1 11 48c745dc00000000 REX.W movq [rbp-0x24],0x0 0x3835c41b52d9 19 48c745e400000000 REX.W movq [rbp-0x1c],0x0 0x3835c41b52e1 21 488b4df0 REX.W movq rcx,[rbp-0x10] 0x3835c41b52e5 25 488b4923 REX.W movq rcx,[rcx+0x23] 0x3835c41b52e9 29 483b21 REX.W cmpq rsp,[rcx] 0x3835c41b52ec 2c 0f86bb000000 jna 0x3835c41b53ad <+0xed> 0x3835c41b52f2 32 488b4df0 REX.W movq rcx,[rbp-0x10] 0x3835c41b52f6 36 488b494f REX.W movq rcx,[rcx+0x4f] 0x3835c41b52fa 3a 8b11 movl rdx,[rcx] 0x3835c41b52fc 3c 488b4df0 REX.W movq rcx,[rbp-0x10] 0x3835c41b5300 40 488b494f REX.W movq rcx,[rcx+0x4f] 0x3835c41b5304 44 8b5904 movl rbx,[rcx+0x4] 0x3835c41b5307 47 8945ec movl [rbp-0x14],rax 0x3835c41b530a 4a 8955e8 movl [rbp-0x18],rdx 0x3835c41b530d 4d 895de4 movl [rbp-0x1c],rbx 0x3835c41b5310 50 488b45f0 REX.W movq rax,[rbp-0x10] 0x3835c41b5314 54 488b4023 REX.W movq rax,[rax+0x23] 0x3835c41b5318 58 483b20 REX.W cmpq rsp,[rax] 0x3835c41b531b 5b 0f8698000000 jna 0x3835c41b53b9 <+0xf9> 0x3835c41b5321 61 488b45f0 REX.W movq rax,[rbp-0x10] 0x3835c41b5325 65 488b404f REX.W movq rax,[rax+0x4f] 0x3835c41b5329 69 8b480c movl rcx,[rax+0xc] 0x3835c41b532c 6c 8b45dc movl rax,[rbp-0x24] 0x3835c41b532f 6f ba2c000000 movl rdx,0x2c 0x3835c41b5334 74 0fafc2 imull rax,rdx 0x3835c41b5337 77 03c8 addl rcx,rax 0x3835c41b5339 79 488b55f0 REX.W movq rdx,[rbp-0x10] 0x3835c41b533d 7d 488b5213 REX.W movq rdx,[rdx+0x13] 0x3835c41b5341 81 b803000000 movl rax,0x3 0x3835c41b5346 86 48f7d8 REX.W negq rax 0x3835c41b5349 89 4803c2 REX.W addq rax,rdx TurboFan: 0x3835c41b5357 97 488b45f0 REX.W movq rax,[rbp-0x10] 0x3835c41b535b 9b 488b400b REX.W movq rax,[rax+0xb] 0x3835c41b53e0 0 55 push rbp0x3835c41b535f 9f 8b1408 movl rdx,[rax+rcx*1] 0x3835c41b5362 a2 33c0 xorl rax,rax 0x3835c41b5364 a4 3bd0 cmpl rdx,rax 0x3835c41b5366 a6 0f9cc2 setll dl 0x3835c41b53e1 1 4889e5 REX.W movq rbp,rsp 0x3835c41b5369 a9 0fb6d2 movzxbl rdx,rdx 0x3835c41b53e4 4 6a0a push 0xa 0x3835c41b53e6 6 56 push rsi 0x3835c41b536c ac 85d2 testl rdx,rdx0x3835c41b53e7 7 4883ec28 REX.W subq rsp,0x28 0x3835c41b536e ae 0f840e000000 jz 0x3835c41b5382 <+0xc2> 0x3835c41b53eb b 488b5e4f REX.W movq rbx,[rsi+0x4f] 0x3835c41b5374 b4 8b45e0 movl rax,[rbp-0x20] 0x3835c41b53ef f 488b560b REX.W movq rdx,[rsi+0xb] 0x3835c41b53f3 13 488b4e13 REX.W movq rcx,[rsi+0x13] 0x3835c41b53f7 17 4883e903 REX.W subq rcx,0x3 0x3835c41b5377 b7 83c001 addl rax,0x10x3835c41b53fb 1b 33ff xorl rdi,rdi 0x3835c41b53fd 1d 4c8bc7 REX.W movq r8,rdi 0x3835c41b537a ba 8945e0 movl [rbp-0x20],rax 0x3835c41b537d bd e900000000 jmp 0x3835c41b5382 <+0xc2> 0x3835c41b5382 c2 8b45dc movl rax,[rbp-0x24] 0x3835c41b5385 c5 83c001 addl rax,0x1 0x3835c41b5388 c8 488b4df0 REX.W movq rcx,[rbp-0x10] 0x3835c41b5400 20 4c8b4e23 REX.W movq r9,[rsi+0x23] 0x3835c41b538c cc 488b494f REX.W movq rcx,[rcx+0x4f] 0x3835c41b5404 24 493b21 REX.W cmpq rsp,[r9] 0x3835c41b5390 d0 8b5108 movl rdx,[rcx+0x8] 0x3835c41b5407 27 0f8633000000 jna 0x3835c41b5440 <+0x60> 0x3835c41b5393 d3 3bc2 cmpl rax,rdx 0x3835c41b540d 2d 446bcf2c imull r9,rdi,0x2c 0x3835c41b5395 d5 0f8308000000 jnc 0x3835c41b53a3 <+0xe3> 0x3835c41b5411 31 448b5b0c movl r11,[rbx+0xc] 0x3835c41b539b db 8945dc movl [rbp-0x24],rax 0x3835c41b539e de e96dffffff jmp 0x3835c41b5310 <+0x50> 0x3835c41b5415 35 4503cb addl r9,r11 0x3835c41b5418 38 4c3bc9 REX.W cmpq r9,rcx0x3835c41b53a3 e3 8b4de0 movl rcx,[rbp-0x20] 0x3835c41b53a6 e6 8bc1 movl rax,rcx 0x3835c41b541b 3b 0f8352000000 jnc 0x3835c41b5473 <+0x93>0x3835c41b53a8 e8 488be5 REX.W movq rsp,rbp 0x3835c41b53ab eb 5d pop rbp 0x3835c41b53ac ec c3 retl 0x3835c41b5421 41 42833c0a00 cmpl [rdx+r9*1],0x0 0x3835c41b53ad ed 50 push rax0x3835c41b5426 46 0f8d04000000 jge 0x3835c41b5430 <+0x50> 0x3835c41b53ae ee e80dfeffff call 0x3835c41b51c0 ;; wasm stub: WasmStackGuard 0x3835c41b53b3 f3 58 pop rax 0x3835c41b53b4 f4 e939ffffff jmp 0x3835c41b52f2 <+0x32> 0x3835c41b542c 4c 4183c001 addl r8,0x1 0x3835c41b53b9 f9 e802feffff call 0x3835c41b51c0 ;; wasm stub: WasmStackGuard 0x3835c41b5430 50 83c701 addl rdi,0x10x3835c41b53be fe e95effffff jmp 0x3835c41b5321 <+0x61> 0x3835c41b53c3 103 e888fcffff call 0x3835c41b5050 ;; wasm stub: ThrowWasmTrapMemOutOfBounds The disassembly in `--predictable` configuration is Liftoff: 0x1bef76d8f2c0 0 55 push rbp 0x1bef76d8f2c1 1 4889e5 REX.W movq rbp,rsp 0x1bef76d8f2c4 4 6a0a push 0xa 0x1bef76d8f2c6 6 4881ec28000000 REX.W subq rsp,0x28 0x1bef76d8f2cd d 488975f0 REX.W movq [rbp-0x10],rsi 0x1bef76d8f2d1 11 48c745dc00000000 REX.W movq [rbp-0x24],0x0 0x1bef76d8f2d9 19 48c745e400000000 REX.W movq [rbp-0x1c],0x0 0x1bef76d8f2e1 21 488b4df0 REX.W movq rcx,[rbp-0x10] 0x1bef76d8f2e5 25 488b4923 REX.W movq rcx,[rcx+0x23] 0x1bef76d8f2e9 29 483b21 REX.W cmpq rsp,[rcx] 0x1bef76d8f2ec 2c 0f86bb000000 jna 0x1bef76d8f3ad <+0xed> 0x1bef76d8f2f2 32 488b4df0 REX.W movq rcx,[rbp-0x10] 0x1bef76d8f2f6 36 488b494f REX.W movq rcx,[rcx+0x4f] 0x1bef76d8f2fa 3a 8b11 movl rdx,[rcx] 0x1bef76d8f2fc 3c 488b4df0 REX.W movq rcx,[rbp-0x10] 0x1bef76d8f300 40 488b494f REX.W movq rcx,[rcx+0x4f] 0x1bef76d8f304 44 8b5904 movl rbx,[rcx+0x4] 0x1bef76d8f307 47 8945ec movl [rbp-0x14],rax 0x1bef76d8f30a 4a 8955e8 movl [rbp-0x18],rdx 0x1bef76d8f30d 4d 895de4 movl [rbp-0x1c],rbx 0x1bef76d8f310 50 488b45f0 REX.W movq rax,[rbp-0x10] 0x1bef76d8f314 54 488b4023 REX.W movq rax,[rax+0x23] 0x1bef76d8f318 58 483b20 REX.W cmpq rsp,[rax] 0x1bef76d8f31b 5b 0f8698000000 jna 0x1bef76d8f3b9 <+0xf9> 0x1bef76d8f321 61 488b45f0 REX.W movq rax,[rbp-0x10] 0x1bef76d8f325 65 488b404f REX.W movq rax,[rax+0x4f] 0x1bef76d8f329 69 8b480c movl rcx,[rax+0xc] 0x1bef76d8f32c 6c 8b45dc movl rax,[rbp-0x24] 0x1bef76d8f32f 6f ba2c000000 movl rdx,0x2c 0x1bef76d8f334 74 0fafc2 imull rax,rdx 0x1bef76d8f337 77 03c8 addl rcx,rax 0x1bef76d8f339 79 488b55f0 REX.W movq rdx,[rbp-0x10] 0x1bef76d8f33d 7d 488b5213 REX.W movq rdx,[rdx+0x13] 0x1bef76d8f341 81 b803000000 movl rax,0x3 0x1bef76d8f346 86 48f7d8 REX.W negq rax 0x1bef76d8f349 89 4803c2 REX.W addq rax,rdx 0x1bef76d8f34c 8c 8bc9 movl rcx,rcx 0x1bef76d8f34e 8e 483bc8 REX.W cmpq rcx,rax 0x1bef76d8f351 91 0f836c000000 jnc 0x1bef76d8f3c3 <+0x103> 0x1bef76d8f357 97 488b45f0 REX.W movq rax,[rbp-0x10] 0x1bef76d8f35b 9b 488b400b REX.W movq rax,[rax+0xb] 0x1bef76d8f35f 9f 8b1408 movl rdx,[rax+rcx*1] 0x1bef76d8f362 a2 33c0 xorl rax,rax 0x1bef76d8f364 a4 3bd0 cmpl rdx,rax 0x1bef76d8f366 a6 0f9cc2 setll dl 0x1bef76d8f369 a9 0fb6d2 movzxbl rdx,rdx 0x1bef76d8f36c ac 85d2 testl rdx,rdx 0x1bef76d8f36e ae 0f840e000000 jz 0x1bef76d8f382 <+0xc2> 0x1bef76d8f374 b4 8b45e0 movl rax,[rbp-0x20] 0x1bef76d8f377 b7 83c001 addl rax,0x1 0x1bef76d8f37a ba 8945e0 movl [rbp-0x20],rax 0x1bef76d8f37d bd e900000000 jmp 0x1bef76d8f382 <+0xc2> 0x1bef76d8f382 c2 8b45dc movl rax,[rbp-0x24] 0x1bef76d8f385 c5 83c001 addl rax,0x1 0x1bef76d8f388 c8 488b4df0 REX.W movq rcx,[rbp-0x10] 0x1bef76d8f38c cc 488b494f REX.W movq rcx,[rcx+0x4f] 0x1bef76d8f390 d0 8b5108 movl rdx,[rcx+0x8] 0x1bef76d8f393 d3 3bc2 cmpl rax,rdx 0x1bef76d8f395 d5 0f8308000000 jnc 0x1bef76d8f3a3 <+0xe3> 0x1bef76d8f39b db 8945dc movl [rbp-0x24],rax 0x1bef76d8f39e de e96dffffff jmp 0x1bef76d8f310 <+0x50> 0x1bef76d8f3a3 e3 8b4de0 movl rcx,[rbp-0x20] 0x1bef76d8f3a6 e6 8bc1 movl rax,rcx 0x1bef76d8f3a8 e8 488be5 REX.W movq rsp,rbp 0x1bef76d8f3ab eb 5d pop rbp 0x1bef76d8f3ac ec c3 retl 0x1bef76d8f3ad ed 50 push rax 0x1bef76d8f3ae ee e80dfeffff call 0x1bef76d8f1c0 ;; wasm stub: WasmStackGuard 0x1bef76d8f3b3 f3 58 pop rax 0x1bef76d8f3b4 f4 e939ffffff jmp 0x1bef76d8f2f2 <+0x32> 0x1bef76d8f3b9 f9 e802feffff call 0x1bef76d8f1c0 ;; wasm stub: WasmStackGuard 0x1bef76d8f3be fe e95effffff jmp 0x1bef76d8f321 <+0x61> 0x1bef76d8f3c3 103 e888fcffff call 0x1bef76d8f050 ;; wasm stub: ThrowWasmTrapMemOutOfBounds TurboFan: 0x1bef76d8f3e0 0 55 push rbp 0x1bef76d8f3e1 1 4889e5 REX.W movq rbp,rsp 0x1bef76d8f3e4 4 6a0a push 0xa 0x1bef76d8f3e6 6 56 push rsi 0x1bef76d8f3e7 7 4883ec28 REX.W subq rsp,0x28 0x1bef76d8f3eb b 488b5e4f REX.W movq rbx,[rsi+0x4f] 0x1bef76d8f3ef f 488b560b REX.W movq rdx,[rsi+0xb] 0x1bef76d8f3f3 13 488b4e13 REX.W movq rcx,[rsi+0x13] 0x1bef76d8f3f7 17 4883e903 REX.W subq rcx,0x3 0x1bef76d8f3fb 1b 33ff xorl rdi,rdi 0x1bef76d8f3fd 1d 4c8bc7 REX.W movq r8,rdi 0x1bef76d8f400 20 4c8b4e23 REX.W movq r9,[rsi+0x23] 0x1bef76d8f404 24 493b21 REX.W cmpq rsp,[r9] 0x1bef76d8f407 27 0f8633000000 jna 0x1bef76d8f440 <+0x60> 0x1bef76d8f40d 2d 446bcf2c imull r9,rdi,0x2c 0x1bef76d8f411 31 448b5b0c movl r11,[rbx+0xc] 0x1bef76d8f415 35 4503cb addl r9,r11 0x1bef76d8f418 38 4c3bc9 REX.W cmpq r9,rcx 0x1bef76d8f41b 3b 0f8352000000 jnc 0x1bef76d8f473 <+0x93> 0x1bef76d8f421 41 42833c0a00 cmpl [rdx+r9*1],0x0 0x1bef76d8f426 46 0f8d04000000 jge 0x1bef76d8f430 <+0x50> 0x1bef76d8f42c 4c 4183c001 addl r8,0x1 0x1bef76d8f430 50 83c701 addl rdi,0x1 0x1bef76d8f433 53 397b08 cmpl [rbx+0x8],rdi 0x1bef76d8f436 56 77c8 ja 0x1bef76d8f400 <+0x20> 0x1bef76d8f438 58 498bc0 REX.W movq rax,r8 0x1bef76d8f43b 5b 488be5 REX.W movq rsp,rbp 0x1bef76d8f43e 5e 5d pop rbp 0x1bef76d8f43f 5f c3 retl 0x1bef76d8f440 60 48895de8 REX.W movq [rbp-0x18],rbx 0x1bef76d8f444 64 48897de0 REX.W movq [rbp-0x20],rdi 0x1bef76d8f448 68 4c8945d8 REX.W movq [rbp-0x28],r8 0x1bef76d8f44c 6c 488955d0 REX.W movq [rbp-0x30],rdx 0x1bef76d8f450 70 48894dc8 REX.W movq [rbp-0x38],rcx 0x1bef76d8f454 74 e867fdffff call 0x1bef76d8f1c0 ;; wasm stub: WasmStackGuard 0x1bef76d8f459 79 488b5de8 REX.W movq rbx,[rbp-0x18] 0x1bef76d8f45d 7d 488b7de0 REX.W movq rdi,[rbp-0x20] 0x1bef76d8f461 81 4c8b45d8 REX.W movq r8,[rbp-0x28] 0x1bef76d8f465 85 488b55d0 REX.W movq rdx,[rbp-0x30] 0x1bef76d8f469 89 488b4dc8 REX.W movq rcx,[rbp-0x38] 0x1bef76d8f46d 8d 488b75f0 REX.W movq rsi,[rbp-0x10] 0x1bef76d8f471 91 eb9a jmp 0x1bef76d8f40d <+0x2d> 0x1bef76d8f473 93 e8d8fbffff call 0x1bef76d8f050 ;; wasm stub: ThrowWasmTrapMemOutOfBounds 0x1bef76d8f478 98 90 nop 0x1bef76d8f479 99 0f1f00 nop What further information can I provide? -- -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev --- You received this message because you are subscribed to the Google Groups "v8-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/v8-dev/4cea2bd7-c5de-4aa5-b37a-ce2b46c7a450%40googlegroups.com.