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.