• jbroman's avatar
    ValueSerializer: Support efficiently reading and writing one-byte strings. · bf511b42
    jbroman authored
    memcpy is faster than UTF-8 encoding/decoding. This yields 10-20% wins on
    serializing and deserializing long ASCII strings, according to
    blink_perf.bindings -- and these are already in a fast path where the entire
    string is known to be ASCII (but this has to be checked). The win may be
    larger for strings in Latin-1 but not ASCII (though I suspect this is an
    uncommon case).
    
    A change is also made to make ValueSerializerTest.EncodeTwoByteStringUsesPadding
    survive wire format version number changes.
    
    This is the first of a series of wire format changes from the previous Blink
    format. The deserializer continues to be able to read the old format, but
    Chromium M56 will no longer be able to read the messages written by this, in M58.
    
    BUG=chromium:686159
    
    Review-Url: https://codereview.chromium.org/2658793004
    Cr-Commit-Position: refs/heads/master@{#42753}
    bf511b42
value-serializer.cc 67.6 KB