Optimized code depends on type feedback, so in this case it'll change depending on what kinds of things *unoptimized* code has seen for "n".
On Tue, Sep 22, 2015 at 1:21 PM, D T <[email protected]> wrote: > Ahhh, that explains a lot! I wondered what the optimized code is about, > for those few lines... > > However, is there any indication how often the function is called (how > many loop steps) to produce the same optimized code? Or, a slightly > different question: If I let v8 optimize the same code a few times, do I > always get the same optimimized code? (call v8 on the js file, then again, > then again, and so on...). > > Am Dienstag, 22. September 2015 11:53:01 UTC+2 schrieb Jakob Kummerow: >> >> 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. > -- -- 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.
