Hey Andreas, Do you know what the limits of other browsers are? If testing a 1 GB module is too slow to be reliable (sometimes timing out) then perhaps there's a large-ish module you can test with that still exceeds the current limits?
Note that you could also add a manual test in WPT for the real limit (1 GB) and run it at least once manually to ensure it works the same in all browsers. Best regards, Philip On Mon, Apr 17, 2023 at 12:12 PM 'Andreas Haas' via blink-dev < blink-dev@chromium.org> wrote: > Hi Ian, > > Here is the benchmark: x20.corp.google.com/users/ah/ahaas/index.html > > You need corp access for it, and I didn't have access to low tier Android > phones with corp access. > > Safari also compiles lazily, so their compile times are similar to ours. > Firefox compiles modules eagerly, and therefore takes longer. I don't > really have the devices or the setup to do the measurements on other > browsers. I measured the performance of Firefox on my workstation, where > the compilation of the 80MB module takes slightly less than 1.6 seconds. > This is about 60% slower than Chrome with eager compilation. I tried Chrome > with eager compilation on the atlas Chromebook. Compilation of the 80MB > module takes 2.8 seconds there. > > Cheers, Andreas > > On Fri, Apr 14, 2023 at 8:18 PM Ian Kilpatrick <ikilpatr...@chromium.org> > wrote: > >> Out of curiosity - >> What is performance like on a low tier Android phone (I see only a Pixel >> 7 tested above)? >> What is the performance of your benchmark on other browsers - across >> device classes? (Even if they don't have this limit - this intent will mean >> that it'll be interoperable to use the sync method - potentially causing >> compat problems for the other browsers). >> >> Ian >> >> On Fri, Apr 14, 2023 at 2:00 AM 'Andreas Haas' via blink-dev < >> blink-dev@chromium.org> wrote: >> >>> Hi Alex, >>> >>> Here are the performance numbers that I collected: >>> https://docs.google.com/document/d/1hOGwCurQmPF_GZdflsJno286sJXgfoLeOGaUhZuMzCQ/edit?usp=sharing >>> >>> I think the question is more, how can we justify such a limit? I mean, I >>> agree, it is not a good experience if the main thread is blocked for 1 >>> second, but we have to consider the scenario in which this is happening. >>> The main thread is blocked for one second after a WebAssembly module was >>> downloaded which is tens of megabytes big. >>> >>> Additionally, in the current environment it is not likely that you end >>> up serving a big WebAssembly module to the user with synchronous >>> compilation by accident. WebAssembly modules are typically generated by >>> compilers which also generate the JS glue code around it. These compilers >>> produce glue code that uses asynchronous compilation or even streaming >>> compilation. Therefore a developer would have to make an effort to even >>> serve a big WebAssembly module with synchronous compilation. >>> >>> There are scenarios where developers make this effort, and I don't think >>> we should prevent developers when they make this conscious decision. One >>> such scenario is tests. It is much easier to write and run tests with >>> synchronous compilation. We run nearly all our WebAssembly tests in V8 with >>> synchronous compilation. We also got bug reports repeatedly where >>> developers struggle with their tests because of the 4KB limit. >>> >>> So overall I think the limit was justified in the beginning, but now >>> with lazy compilation and baseline compilation this justification is gone. >>> I don't think this limit makes the web a better place anymore, it just >>> makes the life of developers difficult in specific niche situations. >>> >>> Cheers, Andreas >>> >>> On Thu, Apr 13, 2023 at 8:21 PM Alex Russell <slightly...@chromium.org> >>> wrote: >>> >>>> "Below 1 second" for something that can block the main thread is not >>>> particularly heartening. Can you please provide the histogram data you're >>>> seeing to justify this? Would you be happy to raise the cap to a larger >>>> (but still fixed) size based on a baseline device config instead?, e.g.: >>>> >>>> https://infrequently.org/2022/12/performance-baseline-2023/ >>>> >>>> Best, >>>> >>>> Alex >>>> On Wednesday, April 5, 2023 at 7:09:15 AM UTC-7 Andreas Haas wrote: >>>> >>>>> Hi Yoav, >>>>> >>>>> I'm not sure what you mean. At the moment this 4KB limit exists in >>>>> Chrome, but it does not exist in Safari or Firefox. I tested this locally >>>>> on my Macbook. I don't know if there exists another test at the moment >>>>> which passes on Safari and Firefox but fails on Chrome, and would pass on >>>>> Chrome after we remove the limit. >>>>> >>>>> Cheers, Andreas >>>>> >>>>> On Wed, Apr 5, 2023 at 3:57 PM Yoav Weiss <yoavwe...@chromium.org> >>>>> wrote: >>>>> >>>>>> >>>>>> >>>>>> On Wed, Apr 5, 2023 at 3:05 PM 'Andreas Haas' via blink-dev < >>>>>> blink-dev@chromium.org> wrote: >>>>>> >>>>>>> Contact emailsah...@google.com >>>>>>> >>>>>>> ExplainerNone >>>>>>> >>>>>>> SpecificationNone >>>>>>> >>>>>>> Summary >>>>>>> >>>>>>> There exists a limit on the size of a module that can be compiled >>>>>>> with `new WebAssembly.Module()` on the main thread. This limit is 4KB, >>>>>>> and >>>>>>> it was introduced when WebAssembly modules got compiled eagerly with an >>>>>>> optimizing compiler, which could block the main thread for many seconds >>>>>>> and >>>>>>> even minutes. In the meantime V8 launched lazy compilation for >>>>>>> WebAssembly >>>>>>> modules, and the execution time of `new WebAssembly.Module()` is below 1 >>>>>>> second even for the biggest modules we see, even on the weakest devices >>>>>>> we >>>>>>> measured. Therefore it is time to remove this limit. >>>>>>> >>>>>>> >>>>>>> Blink componentBlink>JavaScript>WebAssembly >>>>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EJavaScript%3EWebAssembly> >>>>>>> >>>>>>> TAG reviewNone >>>>>>> >>>>>>> TAG review statusNot applicable >>>>>>> >>>>>>> Risks >>>>>>> >>>>>>> >>>>>>> Interoperability and Compatibility >>>>>>> >>>>>>> >>>>>>> >>>>>>> *Gecko*: Shipped/Shipping >>>>>>> >>>>>>> *WebKit*: Shipped/Shipping >>>>>>> >>>>>>> *Web developers*: Strongly positive We received repeated bug >>>>>>> reports because of this limit. Especially for tests synchronous >>>>>>> compilation >>>>>>> with `new WebAssembly.Module()` is useful, but the size limit prevents >>>>>>> bigger tests from using synchronous compilation. >>>>>>> >>>>>>> *Other signals*: >>>>>>> >>>>>>> WebView application risks >>>>>>> >>>>>>> Does this intent deprecate or change behavior of existing APIs, such >>>>>>> that it has potentially high risk for Android WebView-based >>>>>>> applications? >>>>>>> >>>>>>> None >>>>>>> >>>>>>> >>>>>>> Debuggability >>>>>>> >>>>>>> >>>>>>> >>>>>>> Will this feature be supported on all six Blink platforms (Windows, >>>>>>> Mac, Linux, Chrome OS, Android, and Android WebView)?Yes >>>>>>> >>>>>>> Is this feature fully tested by web-platform-tests >>>>>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> >>>>>>> ?No >>>>>>> >>>>>> >>>>>> Is it interoperably tested by other means? I'm not super familiar >>>>>> with WASM testing.. >>>>>> >>>>>> >>>>>>> >>>>>>> >>>>>>> Flag name >>>>>>> >>>>>>> Requires code in //chrome?False >>>>>>> >>>>>>> Estimated milestones >>>>>>> Shipping on desktop 114 >>>>>>> Shipping on Android 114 >>>>>>> Shipping on WebView 114 >>>>>>> >>>>>>> Anticipated spec changes >>>>>>> >>>>>>> Open questions about a feature may be a source of future web compat >>>>>>> or interop issues. Please list open issues (e.g. links to known github >>>>>>> issues in the project for the feature specification) whose resolution >>>>>>> may >>>>>>> introduce web compat/interop risk (e.g., changing to naming or >>>>>>> structure of >>>>>>> the API in a non-backward-compatible way). >>>>>>> None >>>>>>> >>>>>>> Link to entry on the Chrome Platform Status >>>>>>> https://chromestatus.com/feature/5080569152536576 >>>>>>> >>>>>>> Links to previous Intent discussions >>>>>>> >>>>>>> This intent message was generated by Chrome Platform Status >>>>>>> <https://chromestatus.com/>. >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> Andreas Haas >>>>>>> >>>>>>> Software Engineer >>>>>>> >>>>>>> ah...@google.com >>>>>>> >>>>>>> >>>>>>> Google Germany GmbH >>>>>>> >>>>>>> Erika-Mann-Straße 33 >>>>>>> >>>>>>> 80636 München >>>>>>> >>>>>>> >>>>>>> Geschäftsführer: Paul Manicle, Liana Sebastian >>>>>>> >>>>>>> Registergericht und -nummer: Hamburg, HRB 86891 >>>>>>> >>>>>>> Sitz der Gesellschaft: Hamburg >>>>>>> >>>>>>> >>>>>>> Diese E-Mail ist vertraulich. Falls sie 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. >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "blink-dev" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to blink-dev+unsubscr...@chromium.org. >>>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAELSTve0zdDNeCDXvG%3D73-zVy8Fps_9eFErWfOocSfxbzOxGHQ%40mail.gmail.com >>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAELSTve0zdDNeCDXvG%3D73-zVy8Fps_9eFErWfOocSfxbzOxGHQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> >>>>>> >>>>> >>>>> -- >>>>> >>>>> Andreas Haas >>>>> >>>>> Software Engineer >>>>> >>>>> ah...@google.com >>>>> >>>>> >>>>> Google Germany GmbH >>>>> >>>>> Erika-Mann-Straße 33 >>>>> >>>>> 80636 München >>>>> >>>>> >>>>> Geschäftsführer: Paul Manicle, Liana Sebastian >>>>> >>>>> Registergericht und -nummer: Hamburg, HRB 86891 >>>>> >>>>> Sitz der Gesellschaft: Hamburg >>>>> >>>>> >>>>> Diese E-Mail ist vertraulich. Falls sie 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. >>>>> >>>>> >>> >>> -- >>> >>> Andreas Haas >>> >>> Software Engineer >>> >>> ah...@google.com >>> >>> >>> Google Germany GmbH >>> >>> Erika-Mann-Straße 33 >>> >>> 80636 München >>> >>> >>> Geschäftsführer: Paul Manicle, Liana Sebastian >>> >>> Registergericht und -nummer: Hamburg, HRB 86891 >>> >>> Sitz der Gesellschaft: Hamburg >>> >>> >>> Diese E-Mail ist vertraulich. Falls sie 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. >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "blink-dev" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to blink-dev+unsubscr...@chromium.org. >>> To view this discussion on the web visit >>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAELSTvcq5b4gz6U3SYBjPkU1jCZtaPnNZr9tDsD8fZxG7w8Hvg%40mail.gmail.com >>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAELSTvcq5b4gz6U3SYBjPkU1jCZtaPnNZr9tDsD8fZxG7w8Hvg%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> > > -- > > Andreas Haas > > Software Engineer > > ah...@google.com > > > Google Germany GmbH > > Erika-Mann-Straße 33 > > 80636 München > > > Geschäftsführer: Paul Manicle, Liana Sebastian > > Registergericht und -nummer: Hamburg, HRB 86891 > > Sitz der Gesellschaft: Hamburg > > > Diese E-Mail ist vertraulich. Falls sie 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. > > -- > You received this message because you are subscribed to the Google Groups > "blink-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to blink-dev+unsubscr...@chromium.org. > To view this discussion on the web visit > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAELSTvfdj1exWfsUYs4RjbSc7WOTTpNyb1aXCA0R3uPQzCci6w%40mail.gmail.com > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAELSTvfdj1exWfsUYs4RjbSc7WOTTpNyb1aXCA0R3uPQzCci6w%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscr...@chromium.org. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYeEA0bFNHveKC485wvhwkxrjRZJv28nVUjNzu9We%2B6vGA%40mail.gmail.com.