On Mon, Nov 29, 2021 at 5:07 PM Maik Riechert <maik.riech...@arcor.de>
wrote:

> Hi all,
>
> The CCF project (https://github.com/microsoft/CCF) is evaluating to use
> V8 as JavaScript engine (currently QuickJS) for handling HTTP requests.
>
> One of the requirements we have is that each request should get a fresh
> environment. In QuickJS, we simply create a new runtime for each request as
> it is very cheap. In V8 we re-use isolates but create a new context for
> each request. Is my understanding correct that using a new context is the
> only way to get an untouched JavaScript environment each time?
>

I believe so.


> Some early performance tests indicate that we spend most of the time in
> creating new contexts. Looking at profiling data it seems that each time
> the (default) snapshot is decompressed and deserialized, and probably other
> initializations are done after that. It seems that decompressing and
> deserialization should only be done once and after that a memcpy would be
> enough?
>
> Is there something obvious I'm missing?
>

You can turn off snapshot compression to see if that makes a difference.
Add v8_enable_snapshot_compression = false to your GN args.

I don't have any other ideas how to speed up Context creation. From a
browser's point of view, we consider snapshot-based Context creation
"pretty fast", but it may well be that for a different environment (where
presumably you have very many, very quick computations that require a fresh
Context each) it's plausible that the relative overhead is much bigger.

-- 
-- 
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/CAKSzg3QfR0WoiqA5XKm9pUA25BkQvL19SxTP7BxT%2BEabNoeu2w%40mail.gmail.com.

Reply via email to