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 <[email protected]>
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 <[email protected]> wrote:
>>
>>>
>>>
>>> On Wed, Apr 5, 2023 at 3:05 PM 'Andreas Haas' via blink-dev <
>>> [email protected]> wrote:
>>>
>>>> Contact [email protected]
>>>>
>>>> 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
>>>>
>>>> [email protected]
>>>>
>>>>
>>>> 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 [email protected].
>>>> 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
>>
>> [email protected]
>>
>>
>> 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

[email protected]


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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAELSTvcq5b4gz6U3SYBjPkU1jCZtaPnNZr9tDsD8fZxG7w8Hvg%40mail.gmail.com.

Reply via email to