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.