I did some more experiments and it turns out that freezing all globals 
breaks quite a bit of code since the semantics for property assignment 
change. For example, the following pattern wouldn't work anymore if 
Error.prototype is frozen:

function MyError(e) {}
MyError.prototype = new Error
MyError.prototype.name = "MyError"; // ignored or TypeError if strict mode

or more simply:

var e = new Error;
e.name = "MyError"; // ignored or TypeError if strict mode

I guess object freezing can't be an after-thought and has to be part of the 
contract of an API, in this case the built-in API.

Maik Riechert schrieb am Mittwoch, 8. Dezember 2021 um 12:17:50 UTC:

> I had another thought about re-using contexts. If there was a way to 
> freeze the global object (make it and all its child objects read-only), 
> would that be enough to guarantee a predictable state per request? I 
> realize that this probably would break some libraries, but I'd like to 
> explore it nevertheless. This would preclude caching any v8::Module objects 
> (since they have state as well), but that would be fine.
>
> Maik Riechert schrieb am Montag, 6. Dezember 2021 um 14:29:24 UTC:
>
>> Sorry for the late response, for some reason this ended up in spam...
>> On 29.11.2021 23:50, Jakob Kummerow wrote:
>>
>> You can turn off snapshot compression to see if that makes a difference. 
>> Add v8_enable_snapshot_compression = false to your GN args. 
>>
>> Disabling snapshot compression helped a bit. As a test, I also disabled 
>> string rehashing. Now most of the overhead is deserialization. I attached a 
>> flamegraph, maybe that gives some insight.
>>
>

-- 
-- 
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/8f726281-31de-4845-9583-111282b49205n%40googlegroups.com.

Reply via email to