• Feng Xiao's avatar
    Speed up JSON parsing. · bd158fc2
    Feng Xiao authored
    It turns out calling StringOutputStream::Next()/BackUp() repeatedly is
    very costly in opensource protobuf because it keeps resize() the string
    back and forth. The current JSON conversion API suffers this problem and
    leads to ridiculously long parsing time:
    https://github.com/google/protobuf/issues/2305#issuecomment-257785492
    
    This change fixes the problem but caching the buffer of Next() and avoid
    calling BackUp() as much as possible.
    bd158fc2
Name
Last commit
Last update
benchmarks Loading commit data...
cmake Loading commit data...
conformance Loading commit data...
csharp Loading commit data...
docs Loading commit data...
editors Loading commit data...
examples Loading commit data...
java Loading commit data...
javanano Loading commit data...
jenkins Loading commit data...
js Loading commit data...
m4 Loading commit data...
more_tests Loading commit data...
objectivec Loading commit data...
php Loading commit data...
protoc-artifacts Loading commit data...
python Loading commit data...
ruby Loading commit data...
src Loading commit data...
third_party Loading commit data...
util/python Loading commit data...
.gitignore Loading commit data...
.gitmodules Loading commit data...
.travis.yml Loading commit data...
BUILD Loading commit data...
CHANGES.txt Loading commit data...
CONTRIBUTORS.txt Loading commit data...
LICENSE Loading commit data...
Makefile.am Loading commit data...
Protobuf.podspec Loading commit data...
README.md Loading commit data...
WORKSPACE Loading commit data...
appveyor.bat Loading commit data...
appveyor.yml Loading commit data...
autogen.sh Loading commit data...
composer.json Loading commit data...
configure.ac Loading commit data...
generate_changelog.py Loading commit data...
generate_descriptor_proto.sh Loading commit data...
gmock.BUILD Loading commit data...
phpunit.xml Loading commit data...
post_process_dist.sh Loading commit data...
protobuf-lite.pc.in Loading commit data...
protobuf.bzl Loading commit data...
protobuf.pc.in Loading commit data...
six.BUILD Loading commit data...
tests.sh Loading commit data...
update_file_lists.sh Loading commit data...