Functions aren't optimized right away, only when they're detected as "hot". Try calling your function 1000 times or so in a loop. (The bigger it is, the less often it needs to be called to be considered "hot"; the details of that mechanism are rather complicated.)
On Tue, Sep 22, 2015 at 11:46 AM, D T <[email protected]> wrote: > Sorry, sometimes I even confuse myself ;) > > Okay, so I attached the original file I was sent. It states the Raw source > and the "optimized" code (and also uses the crankshaft optimizing compiler > of v8). > Nevertheless, when I try to run the function stated in the Raw code, I do > not get any optimized code. But here is clearly says "optimized"... > Do I miss some parameter for d8? > > If I still confuse you, just tell me :D > > > Am Dienstag, 22. September 2015 10:59:57 UTC+2 schrieb Andreas Rossberg: >> >> Not sure I understand. If nothing is printed, are you sure the function >> gets optimised at all? >> >> On 22 September 2015 at 10:42, D T <[email protected]> wrote: >> >>> Thanks for your quick answer, Andreas! >>> >>> So, I got the snippet I showed you avove by mail to look over the ASM >>> code (I dont have much experience with Javascript ;) ). >>> When run the d8 as follows: >>> v8/out/ia32.release/d8 --print_opt_code test.js >>> >>> With the code printed in the RAW section (slightly modified, like): >>> function foo(n) >>> { >>> return Math.floor(Math.random() * n); >>> } >>> >>> V8 prints just nothing... >>> Am I missing something? >>> >>> >>> Am Dienstag, 22. September 2015 08:34:46 UTC+2 schrieb Andreas Rossberg: >>>> >>>> The printed raw source _is_ the exact source of that individual >>>> function (minus the 'function' prefix). What are you missing? >>>> >>>> On 21 September 2015 at 23:49, D T <[email protected]> wrote: >>>> >>>>> Hi v8 users, >>>>> >>>>> I am using d8 version 4.7.0 on Ubuntu Linux vivid. I played around >>>>> with d8 a little bit and used the following command line: >>>>> user@debugbox: v8/out/ia32.release/d8 --print_opt_code test.js >>>>> >>>>> >>>>> >>>>> >>>>> Which leads to the following output: >>>>> --- Raw source --- >>>>> (n) >>>>> { >>>>> return Math.floor(Math.random() * n); >>>>> } >>>>> >>>>> >>>>> >>>>> >>>>> --- Optimized code --- >>>>> optimization_id = 0 >>>>> source_position = 27528 >>>>> kind = OPTIMIZED_FUNCTION >>>>> name = rnd >>>>> stack_slots = 2 >>>>> compiler = crankshaft >>>>> Instructions (size = 612) >>>>> 0x2020e060 0 55 push ebp >>>>> 0x2020e061 1 89e5 mov ebp,esp >>>>> 0x2020e063 3 56 push esi >>>>> 0x2020e064 4 57 push edi >>>>> 0x2020e065 5 83ec08 sub esp,0x8 >>>>> 0x2020e068 8 50 push eax >>>>> 0x2020e069 9 c7c002000000 mov eax,0x2 >>>>> 0x2020e06f 15 c70484efdeefbe mov [esp+eax*4],0xbeefdeef >>>>> 0x2020e076 22 48 dec eax >>>>> 0x2020e077 23 75f6 jnz 15 (0x2020e06f) >>>>> 0x2020e079 25 58 pop eax >>>>> 0x2020e07a 26 c745f400000000 mov [ebp-0xc],0x0 >>>>> 0x2020e081 33 8b45fc mov eax,[ebp-0x4] >>>>> 0x2020e084 36 8945f0 mov [ebp-0x10],eax >>>>> 0x2020e087 39 89c6 mov esi,eax >>>>> 0x2020e089 41 3b25241aa009 cmp esp,[0x9a01a24] ;; >>>>> external reference (StackGuard::address_of_jslimit()) >>>>> 0x2020e08f 47 7305 jnc 54 (0x2020e096) >>>>> 0x2020e091 49 e8ea15321b call StackCheck (0x3b52f680) ;; >>>>> code: BUILTIN >>>>> 0x2020e096 54 b805cfb729 mov eax,0x29b7cf05 >>>>> [snip] >>>>> >>>>> >>>>> >>>>> Is there any way, to print the _original_ javascript code I feeded >>>>> into v8 (since the raw source here is not the exact same code as the input >>>>> code), before printing the optimized, corresponding code? >>>>> >>>>> Thanks! >>>>> >>>>> -- >>>>> -- >>>>> v8-users mailing list >>>>> [email protected] >>>>> http://groups.google.com/group/v8-users >>>>> --- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "v8-users" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> -- >>> -- >>> v8-users mailing list >>> [email protected] >>> http://groups.google.com/group/v8-users >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "v8-users" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- > -- > v8-users mailing list > [email protected] > http://groups.google.com/group/v8-users > --- > You received this message because you are subscribed to the Google Groups > "v8-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- -- v8-users mailing list [email protected] http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
