Hi, 
for the json tests the results are looking really promising (its this ~2MB 
sized file: 
https://github.com/arangodb/arangodb/tree/devel/js/apps/system/_admin/aardvark/APP
 
)

However, all the throw tests don't look as good. 
`--no-enable-lazy-source-positions` doesn't bring me in the range of the 
older V8; am I missing something about my tiny test program? 

Arangodb 3.6.1:  (V8 7.1)
docker -v /tmp/:/tmp/ run -it arangodb:3.6.1 /bin/sh

cd /usr/share/arangodb3; /usr/bin/arangosh --javascript.execute /tmp/test.js 
JSON parse:     11.244979858398438
stack frames A: 0.0011951923370361328
stack frames B: 0.0011119842529296875
stack frames c: 0.0015842914581298828
stack frames c: 0.0014750957489013672
stack frames d: 0.0006735324859619141

stack frames d: 0.0005927085876464844


devel: (V8 7.9)
docker run -v /tmp/:/tmp/ -it arangodb/arangodb-preview:devel-nightly /bin/
sh

cd /usr/share/arangodb3; /usr/bin/arangosh 
'--javascript.v8-options=--enable-lazy-source-positions' --javascript.execute 
/tmp/test.js 



JSON parse:     4.552847385406494
stack frames A: 0.001809835433959961
stack frames B: 0.0014481544494628906
stack frames c: 0.0021665096282958984
stack frames c: 0.002079486846923828
stack frames d: 0.0009906291961669922
stack frames d: 0.001043081283569336



cd /usr/share/arangodb3; /usr/bin/arangosh 
'--javascript.v8-options=--no-enable-lazy-source-positions' 
--javascript.execute 
/tmp/test.js 


JSON parse:     4.576668739318848
stack frames A: 0.0018227100372314453
stack frames B: 0.0014328956604003906
stack frames c: 0.0021677017211914062
stack frames c: 0.002074718475341797
stack frames d: 0.0009608268737792969
stack frames d: 0.0008444786071777344



cheers, 
Willi

On Monday, February 10, 2020 at 5:03:29 PM UTC+1, Dan Elphick wrote:
>
> It sounds like you're talking about lazy source positions, but the code 
> you've listed there shouldn't be affected by that since it never symbolizes 
> a stack trace. You could confirm that by disabling it with the flag 
> --no-enable-lazy-source-positions.
>
> If you added "var a = x.stack;" to your test8 function then it would 
> trigger symbolization (without printing it), since stack is actually a 
> function masquerading as a variable and so even accessing it will trigger 
> source position collection. I would then expect the first iteration to be 
> slower as it reparses, but then subsequent iterations would be fast.
>
> Dan
>
> On Mon, 10 Feb 2020 at 15:20, Wilfried Gösgens <doth...@gmail.com 
> <javascript:>> wrote:
>
>> Hi, 
>> reading the changelog I saw that many things changed about stacktrace 
>> generation in the recent V8 versions, which should change the performance 
>> of generating the error instance?
>> I've tried this simple test with arangodb's arangosh and its embedded V8 
>> versions 7.1 and 7.9: 
>>
>> function test1() {
>>   function test2() {
>>     function test3() {
>>       function test4() {
>>         function test5() {
>>           function test6() {
>>             function test7() {
>>               function test8() {
>>                 x= new Error;
>>                 return 1;
>>               }
>>               return test8();
>>             }
>>             return test7();
>>           }
>>           return test6();
>>         }
>>         return test5();
>>       }
>>       return test4();
>>     }
>>     return test3();
>>   }
>>   return test2();
>> }
>>
>> before = time();
>> for (let i = 1; i < 50; i ++) {
>>   test1();
>> }
>> print(time() - before);
>>
>>
>> 7.1:  - (as in ArangoDB 3.6) 0.0012750625610351562
>> 7.9: - (as in current devel) 0.6016845703125
>>
>> The figures are similar when I throw the error and catch it inside that 
>> for loop. 
>> I've read that later V8 reparses the source in order to get the 
>> printeable stacktrace; is this what gives such a worse performance here? 
>> If yes, which way is one to achieve similar / faster performance with 
>> recent V8 versions?
>>
>> Cheers, 
>> Willi
>>
>> -- 
>> -- 
>> v8-users mailing list
>> v8-u...@googlegroups.com <javascript:>
>> 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 v8-u...@googlegroups.com <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/v8-users/f27ad537-86c5-4f3e-be8c-b25b73dea7af%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/v8-users/f27ad537-86c5-4f3e-be8c-b25b73dea7af%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
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 v8-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/v8-users/d649c0ed-d996-4dfa-b387-5e65caeaf45f%40googlegroups.com.

Reply via email to