1. 04 Mar, 2019 1 commit
    • Benedikt Meurer's avatar
      [cleanup] Remove obsolete "one byte data hint" for strings. · 683cf6f4
      Benedikt Meurer authored
      In the early days of Chrome when we used WebKit there was no support for
      ASCII strings on the C++ side, so we put a hint onto these two-byte
      strings that said "string only contains one byte data", such that
      internally in V8 when these were involved in string operations, we could
      instead create the *cheaper* one byte strings.
      
      Nowadays Blink properly supports one-byte string representations and
      this additional hint only comes with overhead, since we check it in
      quite a few places (i.e. on the hot path for string concatenation), plus
      we end up consuming more memory due to the additional string maps.
      Removing the hint also frees one bit in the InstanceType zoo for
      strings.
      
      This alone improves performance on the `bench-dom-serialize.js` test case
      by around **3%**.
      
      Tbr: mstarzinger@chromium.org
      Bug: v8:6622, v8:8834, v8:8939
      Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
      Change-Id: I0753f2859cee7b5a37b6f0da64d8ec39fcb044ff
      Doc: https://bit.ly/fast-string-concatenation-in-javascript
      Reviewed-on: https://chromium-review.googlesource.com/c/1498478
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60006}
      683cf6f4
  2. 21 Feb, 2019 1 commit
  3. 30 Nov, 2017 2 commits
    • Michael Achenbach's avatar
      Revert "[objects] No longer create short external strings." · fc50e2c4
      Michael Achenbach authored
      This reverts commit e42e7fc8.
      
      Reason for revert: Speculative revert for:
      https://crbug.com/v8/7149
      
      Original change's description:
      > [objects] No longer create short external strings.
      > 
      > This fixes String::MakeExternal() to bail out if the subject string
      > doesn't fit a regular ExternalString, instead of creating a short
      > external string. The observation here is that for short external strings
      > the overhead of having to have the StringResource plus going to the
      > runtime/C++ for each and every character access from JavaScript land
      > is probably bigger than the anticipated benefits.
      > 
      > If this turns out to be wrong and there's a real benefit, we should make
      > use of ThinStrings instead of having a separate way to represent
      > external strings.
      > 
      > Bug: v8:6621, v8:7109, v8:7145
      > Change-Id: I4b75da08b82a72027c782a69de9c8eaf3cca1d4d
      > Reviewed-on: https://chromium-review.googlesource.com/799750
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#49735}
      
      TBR=yangguo@chromium.org,bmeurer@chromium.org
      
      Change-Id: I3f5cfa9ab5c99ddce1d61ede9ed9515cb3936cdd
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6621, v8:7109, v8:7145, v8:7149
      Reviewed-on: https://chromium-review.googlesource.com/801675Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49770}
      fc50e2c4
    • Benedikt Meurer's avatar
      [objects] No longer create short external strings. · e42e7fc8
      Benedikt Meurer authored
      This fixes String::MakeExternal() to bail out if the subject string
      doesn't fit a regular ExternalString, instead of creating a short
      external string. The observation here is that for short external strings
      the overhead of having to have the StringResource plus going to the
      runtime/C++ for each and every character access from JavaScript land
      is probably bigger than the anticipated benefits.
      
      If this turns out to be wrong and there's a real benefit, we should make
      use of ThinStrings instead of having a separate way to represent
      external strings.
      
      Bug: v8:6621, v8:7109, v8:7145
      Change-Id: I4b75da08b82a72027c782a69de9c8eaf3cca1d4d
      Reviewed-on: https://chromium-review.googlesource.com/799750Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49735}
      e42e7fc8
  4. 07 Mar, 2017 1 commit
  5. 10 Sep, 2014 1 commit
  6. 25 Nov, 2011 1 commit
  7. 23 Nov, 2011 3 commits
  8. 17 Nov, 2011 1 commit
  9. 28 Oct, 2010 1 commit
  10. 17 Jun, 2010 1 commit