1. 03 Mar, 2017 6 commits
  2. 02 Mar, 2017 2 commits
  3. 01 Mar, 2017 4 commits
  4. 28 Feb, 2017 5 commits
    • Niels Lohmann's avatar
      🔀 merge branch 'feature/serialization_class' into develop (#418) · 41f9b325
      Niels Lohmann authored
      Moved all dump()-related functions into a class "serializer". This fix includes a lot of performance improvements yielding a 7% speedup for serialization. Details on the individual steps can be found in the commit messages.
      
      Individual benchmark numbers:
      
      before:
      
      dump jeopardy.json                            5   374555228 ns/op
      dump jeopardy.json with indent                5   430953700 ns/op
      dump numbers/floats.json                      5   622938509 ns/op
      dump numbers/signed_ints.json                20    82177979 ns/op
      
      after:
      
      dump jeopardy.json                            5   335449757 ns/op -11%
      dump jeopardy.json with indent                5   375467773 ns/op -13%
      dump numbers/floats.json                      5   584611852 ns/op -7%
      dump numbers/signed_ints.json                20    68289574 ns/op -17%
      41f9b325
    • Niels Lohmann's avatar
      💄 cleanup · d69242c6
      Niels Lohmann authored
      - Added comments for the serializer class.
      - Added test case for resizing of the indentation string.
      - Using std::none_of to check if “.0” needs to be added to
      floating-point number.
      d69242c6
    • Niels Lohmann's avatar
      💄 fixed a warning · 059f21aa
      Niels Lohmann authored
      snprintf returns an int, but we later assign it a difference_type which
      is usually a long.
      059f21aa
    • Niels Lohmann's avatar
      micro-optimization of dump() · 224f9907
      Niels Lohmann authored
      A lot of small changes to avoid memory allocations:
      
      - The locale is only queried once rather than with every number
      serialization.
      - The indentation string is recycled between different calls.
      - The string escape function avoids a copy if no escaping is necessary.
      - The string escape and the space function use a complete switch case
      instead of cascaded ifs.
      
      Cachegrind measures some 15% performance improvement.
      224f9907
    • Niels Lohmann's avatar
      🐛 fixed a logical error · fc48b8ac
      Niels Lohmann authored
      Treated the size of the range as the number of thousand separators.
      This logical error yielded a negative value for written_bytes and
      eventually an infinite loop, as written_bytes was converted to an
      unsigned value.
      fc48b8ac
  5. 27 Feb, 2017 5 commits
  6. 26 Feb, 2017 6 commits
  7. 25 Feb, 2017 3 commits
  8. 22 Feb, 2017 5 commits
  9. 21 Feb, 2017 1 commit
  10. 20 Feb, 2017 3 commits