LGTM for an origin trial M119-M124 (which I think is what you requested)

Good luck with your data collection!

/Daniel

On 2023-09-13 18:04, 'Emanuel Ziegler' via blink-dev wrote:
Hi Daniel,

This feature has no impact without the Wasm moduled specifically compiled for it. So we are dependent on partners implementing this and measuring the impact. We have concrete plans with Google Sheets to run A/B trials based on an origin trial, but hope that other partners like Kotlin or Dart would follow soon to provide more data points.

Best regards,
    Emanuel

On Wed, Sep 13, 2023 at 5:48 PM Daniel Bratell <bratel...@gmail.com> wrote:

    Do you plan to run it as a finch experiment or do you have
    partners prepared for an Origin Trial?

    /Daniel

    On 2023-09-12 21:24, 'Emanuel Ziegler' via blink-dev wrote:


            Dear API Owners,


            Many use cases for WasmGC require calling JS functions or
            WebAPIs frequently. These calls suffer from substantial
            overhead when strings are involved due to the
            encoding/decoding required for changing in between the
            non-standardized Wasm module representation and the
            engine-internal JS string representation.


            We previously evaluated native string operations in Wasm
            
<https://github.com/WebAssembly/stringref/blob/main/proposals/stringref/Overview.md>which
            would map to JS equivalents and use the same backend,
            eliminating the need for re-encoding and copies. While
            the performance of this approach was excellent (see e.g.
            Kotlin/Wasm's DBMonster benchmark with
            <https://zal.im/wasm/dbmonster-stringref/>and without
            <https://zal.im/wasm/dbmonster/>stringref), the Wasm
            Community Group preferred an alternative solution that
            uses imported JS functions
            
<https://github.com/WebAssembly/js-string-builtins/blob/main/proposals/js-string-builtins/Overview.md>for
            creating and manipulating strings which could then be
            optimized away by the engine. Our experiments show a
            similar peak performance but slightly lower performance
            on startup as Liftoff is not capable of doing such
            optimizations effectively falling back to executing the call.


            We would therefore like to launch a 6-month origin trial
            starting in M119 for comparing the two approaches and, if
            performance is good enough, encourage partners to switch
            over to the new proposal to verify its viability.



            Contact emails

    ecmzieg...@chromium.org, jkumme...@chromium.org, ad...@chromium.org


            Explainer

    None


            Specification

    
https://github.com/WebAssembly/js-string-builtins/blob/main/proposals/js-string-builtins/Overview.md


            Summary

    This feature exposes common JS string operations for easy import
    into WebAssembly and optimizations thereof. This allows creating
    and manipulating JS strings from WebAssembly without native
    support within WebAssembly while still allowing for a similar
    performance as native string references. The mechanism works by
    exposing suitably strict versions of JS string operations in the
    WebAssembly JS API. These can be imported by modules using
    externref as a generic data type for storing the strings. The
    engine can identify that these imports can be represented by
    native graph operators without the need for calling into JS. This
    leads to a comparable peak performance as native string
    operations while allowing quick interoperability with JS since no
    copying at the boundary is required when calling into arbitrary
    JS functions that consume strings.



            Blink component

    Blink>JavaScript>WebAssembly
    
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EJavaScript%3EWebAssembly>


            TAG review

    None


            TAG review status

    Not applicable


            Risks



            Interoperability and Compatibility

    None



    /Gecko/: Positive

    /WebKit/: No signal

    /Web developers/: No signals

    /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



            Goals for experimentation



            Ongoing technical constraints

    None



            Debuggability

    None



            Will this feature be supported on all six Blink platforms
            (Windows, Mac, Linux, Chrome OS, Android, and Android
            WebView)?

    No


            Is this feature fully tested by web-platform-tests
            
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?

    No


            Flag name on chrome://flags

    None


            Finch feature name

    None


            Non-finch justification

    None


            Requires code in //chrome?

    False


            Estimated milestones

    No milestones specified



            Link to entry on the Chrome Platform Status

    https://chromestatus.com/feature/6695587390423040
-- 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/CAPAU7RyzxKa0Pj6q7B_jyfT%3DH%2BSK264%3Dx8wn1ans%3D8UjHRhctQ%40mail.gmail.com
    
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPAU7RyzxKa0Pj6q7B_jyfT%3DH%2BSK264%3Dx8wn1ans%3D8UjHRhctQ%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/CAPAU7Rym1c7E0Da82c8f3PKOac5hdTPQ1F575xjvfnuKEAD0cg%40mail.gmail.com <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPAU7Rym1c7E0Da82c8f3PKOac5hdTPQ1F575xjvfnuKEAD0cg%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/47b333e5-e707-2d88-9d6d-bd30a5bf20f7%40gmail.com.

Reply via email to