1. 01 Mar, 2017 1 commit
    • Niels Lohmann's avatar
      📝 added a note to ordered maps · f84ac523
      Niels Lohmann authored
      The library does not preserve the insertion order of object keys. There
      are frequent requests to change the library in this aspect. The README
      and the contribution guidelines now contain links to containers that
      can be used to replace std::map to preserve the insertion order.
      f84ac523
  2. 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
  3. 27 Feb, 2017 5 commits
  4. 26 Feb, 2017 6 commits
  5. 25 Feb, 2017 3 commits
  6. 22 Feb, 2017 5 commits
  7. 21 Feb, 2017 1 commit
  8. 20 Feb, 2017 8 commits
  9. 19 Feb, 2017 6 commits