Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3fa658700239c8e7cbe8fa20793a6314274560cd
      
https://github.com/WebKit/WebKit/commit/3fa658700239c8e7cbe8fa20793a6314274560cd
  Author: Yusuke Suzuki <[email protected]>
  Date:   2023-05-06 (Sat, 06 May 2023)

  Changed paths:
    A JSTests/stress/json-stringify-integer.js
    M Source/JavaScriptCore/runtime/JSONObject.cpp

  Log Message:
  -----------
  [JSC] Optimize JSON.stringify integer serialization
https://bugs.webkit.org/show_bug.cgi?id=256409
rdar://108978640

Reviewed by Darin Adler.

Let's use std::to_chars. The current implementation is extremely optimized, and 
faster than our custom implementation.
Right now, we are not switching to std::to_chars for everything since there is 
an impedance mismatch in our API and this function,
but we can just use it for FastStringifier. We also optimized forEachProperty 
code to just use `auto` of parameter, which
continues using CompactPropertyTableEntry for CompactPRopertyTable (majority of 
objects).

                                               ToT                     Patched

    vanilla-todomvc-json-stringify       52.0172+-0.3011     ^     
46.4912+-0.2382        ^ definitely 1.1189x faster

* JSTests/stress/json-stringify-integer.js: Added.
(shouldBe):
* Source/JavaScriptCore/runtime/JSONObject.cpp:
(JSC::Stringifier::Holder::appendNextProperty):
(JSC::FastStringifier::append):

Canonical link: https://commits.webkit.org/263765@main


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to