I read the blog posts about pointer compression and the advantages,
it seems like you get some performance benefit too?

The end goal is to set a maximum heap limit for a script execution (often
short-lived),
and when breached, raise a nice "out of memory" error that an ordinary user
could understand.

If the end users chooses, they can reexecute with a higher ceiling.
Sometimes a lot of RAM would be nice to use, but you really want to set
some kind of expected limit
so all the memory isn't consumed by a runaway calculation.


With full pointers, that would involve turning off pointer compression,
but that would also disable cppgc_young_generation and a lot of the other
cppgc features, right?
I think I saw the young-generation requires a cage which requires pointer
compression?


On Wed, 22 Mar 2023 at 22:53, dinf...@chromium.org <dinfu...@chromium.org>
wrote:

>
>
> On Wednesday, March 22, 2023 at 2:47:15 PM UTC+1 harr...@gmail.com wrote:
>
> Ok thanks Dominik and Camillo.
> I think RequestTermination can fail to actually interrupt execution if
> there is no additional callouts into the engine where it can throw
> something.  But better than nothing!
>
>
> I believe in such cases we could introduce additional checks to fix those
> issues. That would likely help other embedders as well (e.g. DevTools uses
> the same callback for a similar purpose).
>
>
>
> How big can the heap be these days?
> I've seen mention of 2GB, 4GB, 8GB ... more?
>
>
> With ptr compression we are limited to 4GB but with full pointers the
> limit could be manually set to something that's larger than that.
>
>
>
> On Tuesday, March 21, 2023 at 4:23:21 PM UTC+8 dinf...@chromium.org wrote:
>
> Hi,
>
> I don't think it's possible to do that from the near heap limit callback
> as our C++ code doesn't doesn't handle allocation failures gracefully. I
> believe on OOM you have to do something like: 1) extend the limit using
> that callback first and then 2) use Isolate::RequestTermination to cancel
> execution.
>
> Hope that helps!
>
> Cheers,
> Dominik
>
> On Tuesday, March 21, 2023 at 8:37:46 AM UTC+1 Camillo Bruni wrote:
>
> Hi Paul,
>
> You could try using v8::Isolate::TerminateExecution(). It's a best-effort
> approach to limit further JS execution and allocations.
>
> cheers,
> Camillo
>
> On Tue, 21 Mar 2023 at 08:00, Paul Harris <harr...@gmail.com> wrote:
>
> Hi again,
>
> Is there a nice way I could cancel a JS execution (eg raise an exception)
> from within eg the NearHeapCallback to avoid OOMs?
>
> I'd rather if the script is consuming more RAM than expected, that it
> raises exceptions and unwinds rather than bombing out.
>
> Thanks,
> Paul
>
> --
> --
> v8-dev mailing list
> v8-...@googlegroups.com
> http://groups.google.com/group/v8-dev
> ---
> You received this message because you are subscribed to the Google Groups
> "v8-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to v8-dev+un...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/v8-dev/9b1749b5-ccda-4a74-b846-d0347121c7fen%40googlegroups.com
> <https://groups.google.com/d/msgid/v8-dev/9b1749b5-ccda-4a74-b846-d0347121c7fen%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> Camillo Bruni | Software Engineer, V8 | Google Germany GmbH | Erika-Mann
> Str. 33, 80636 München
>
> Registergericht und -nummer: Hamburg, HRB 86891 | Sitz der Gesellschaft:
> Hamburg | Geschäftsführer: Paul Manicle, Halimah DeLaine Prado
>
> Diese E-Mail ist vertraulich. Falls Ssie diese fälschlicherweise erhalten
> haben sollten, leiten Sie diese bitte nicht an jemand anderes weiter,
> löschen Sie alle Kopien und Anhänge davon und lassen Sie mich bitte wissen,
> dass die E-Mail an die falsche Person gesendet wurde.  This e-mail is
> confidential. If you received this communication by mistake, please don't
> forward it to anyone else, please erase all copies and attachments, and
> please let me know that it has gone to the wrong person.
>
> --
> --
> v8-dev mailing list
> v8-dev@googlegroups.com
> http://groups.google.com/group/v8-dev
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "v8-dev" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/v8-dev/OeJ_DlMj3v8/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> v8-dev+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/v8-dev/62d4fd80-7280-4f14-ba4a-a3eafdeb52f8n%40googlegroups.com
> <https://groups.google.com/d/msgid/v8-dev/62d4fd80-7280-4f14-ba4a-a3eafdeb52f8n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
-- 
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/v8-dev/CAMSUDdaDNFSW%3DU9Pz%2BbKr8K3-OqqgiPxCedaje_4QFU_OKrk9Q%40mail.gmail.com.

Reply via email to