1. 14 Aug, 2020 2 commits
  2. 12 Aug, 2020 2 commits
  3. 11 Aug, 2020 4 commits
  4. 10 Aug, 2020 1 commit
  5. 07 Aug, 2020 1 commit
    • Steven Allen's avatar
      optimize byte reading · 86493506
      Steven Allen authored
      When using cbor-gen, we _usually_ work with byte buffers/readers. Calling
      `ReadByte` on a byte.Reader/byte.Buffer is much faster than calling `Read` and
      copying into a slice.
      
          name            old time/op    new time/op    delta
          Marshaling-4       911ns ± 2%     904ns ± 5%     ~     (p=0.646 n=9+10)
          Unmarshaling-4    4.46µs ± 1%    3.94µs ± 2%  -11.55%  (p=0.000 n=10+8)
          LinkScan-4        4.65µs ± 2%    4.01µs ± 2%  -13.76%  (p=0.000 n=9+10)
          Deferred-4        3.68µs ± 3%    3.02µs ± 4%  -17.91%  (p=0.000 n=10+10)
      
          name            old alloc/op   new alloc/op   delta
          Marshaling-4        160B ± 0%      160B ± 0%     ~     (all equal)
          Unmarshaling-4    3.46kB ± 0%    3.46kB ± 0%     ~     (all equal)
          LinkScan-4          880B ± 0%      880B ± 0%     ~     (p=0.650 n=10+10)
          Deferred-4         96.0B ± 0%     96.0B ± 0%     ~     (all equal)
      
          name            old allocs/op  new allocs/op  delta
          Marshaling-4        10.0 ± 0%      10.0 ± 0%     ~     (all equal)
          Unmarshaling-4      43.0 ± 0%      43.0 ± 0%     ~     (all equal)
          LinkScan-4          25.0 ± 0%      25.0 ± 0%     ~     (all equal)
          Deferred-4          3.00 ± 0%      3.00 ± 0%     ~     (all equal)
      86493506
  6. 06 Aug, 2020 2 commits
  7. 05 Aug, 2020 4 commits
    • Steven Allen's avatar
      Make ScanForLinks non-recursive · f6390fed
      Steven Allen authored
      This way, we can't blow out our stack.
      f6390fed
    • Steven Allen's avatar
      Optimize Deferred · cdf4113c
      Steven Allen authored
      We use this quite frequently so it should be fast.
      
      Note: this removes the depth restriction because the algorithm is no longer recursive.
      cdf4113c
    • Steven Allen's avatar
      Optimize readByte · 3c783b99
      Steven Allen authored
      Type asserting to a concrete type is ~10x faster than type asserting to an
      interface. This change has a significant performance impact in my test. readByte
      used to account for 10.8% of the time, now it accounts for 3.4%.
      3c783b99
    • Steven Allen's avatar
      Switch to non-buffering byte reader · 021bda15
      Steven Allen authored
      Buffering could lead to reading over the end of the object, corrupting the next object.
      
      This patch also gets rid of "PeekByte" and uses the standard ReadByte/UnreadByte
      interfaces. That way, we can avoid wrapping the byte reader in the happy path,
      saving some overhead.
      021bda15
  8. 23 Jul, 2020 3 commits
  9. 20 Jul, 2020 2 commits
  10. 15 Jul, 2020 1 commit
  11. 14 Jul, 2020 2 commits
  12. 10 Jul, 2020 5 commits
  13. 06 Jul, 2020 2 commits
  14. 03 Jul, 2020 3 commits
  15. 19 Jun, 2020 1 commit
  16. 04 May, 2020 4 commits
  17. 03 May, 2020 1 commit