Commit Graph

70 Commits

Author SHA1 Message Date
Paul Dreik 399d08c86c use unique_ptr in class parsedjson (#417)
* refactor parsedjson to use unique_ptr instead of owning raw pointer
* fix a potential undefined behavior
* output only first cpu in /proc/cpuinfo
2019-12-31 14:31:45 -05:00
Daniel Lemire 7e331957c4 Adding ruby script. 2019-12-30 15:07:42 -05:00
John Keiser d7c83397e4 lookup+cont-check algorithm 2019-12-18 14:37:21 -08:00
John Keiser de8df0a05f Combined performance patch (5% overall, 15% stage 1) (#317)
* Allow -f

* Support parse -s (force sse)

* Simplify flatten_bits

- Add directly to base instead of storing variable
- Don't modify base_ptr after beginning of function
- Eliminate base variable and increment base_ptr instead

* De-unroll the flatten_bits loops

* Decrease dependencies in stage 1

- Do all finalize_structurals work before computing the quote mask; mask
  out the quote mask later
- Join find_whitespace_and_structurals and finalize_structurals into
  single find_structurals call, to reduce variable leakage
- Rework pseudo_pred algorithm to refer to "primitive" for clarity and some
  dependency reduction
- Rename quote_mask to in_string to describe what we're trying to
  achieve ("mask" could mean many things)
- Break up find_quote_mask_and_bits into find_quote_mask and
  invalid_string_bytes to reduce data leakage (i.e. don't expose quote bits
  or odd_ends at all to find_structural_bits)
- Genericize overflow methods "follows" and "follows_odd_sequence" for
  descriptiveness and possible lifting into a generic simd parsing library

* Mark branches as likely/unlikely

* Reorder and unroll+interleave stage 1 loop

* Nest the cnt > 16 branch inside cnt > 8
2019-10-01 12:01:08 -04:00
John Keiser f7e893667d Use simd_input generic methods for utf8 checking (#301)
* Use generic each/reduce in simdutf8check

* Remove macros from generic simd_input uses

* Use array instead of members to store simd registers

* Default local checkperf to clone from .
2019-09-02 12:46:05 -04:00
John Keiser cf4ae61ac6 Modify checkperf to print out perfdiff command
to make it easier to run it yourself without having to recompile the
world
2019-08-26 09:46:49 -07:00
John Keiser c8d50a6060 Make perf validation more stable, check no-AVX as well (#275)
* Compare against v0.2.1, fail only if perf is less 6 times in a row

* Run AVX and no-AVX perf tests in Circle CI

* Set % difference threshold to 0.2%
2019-08-15 20:43:21 -04:00
John Keiser 875e2f9d0d check for performance degradation in CI (#270)
* Add -n and -w arguments

* Add Dockerfile that compares perf against master

* Add checkperf to .drone.yml

* Clone from github instead of .git since CI doesn't have .git
2019-08-12 16:03:56 -04:00
Daniel Lemire 47c6490115 Tweaking makefile. 2019-07-11 11:54:17 -04:00
Daniel Lemire 3c1638c046
We no longer need this old stuff. (#214) 2019-07-09 22:04:02 -04:00
Daniel Lemire f75280ac9c
Fix for issue 150 (#162)
* Checks for issue 150. We run through the test files with sanitizers on.

* Fix for issue 150: the remaining issues were an overrun on the depth capacity and an "off-by-1" overrun on tape capacity.

* Improving makefile.

* Safer git submodule command.

* Getting get 'git' on circleci
2019-05-09 20:51:33 -04:00
Daniel Lemire a66bd48cae Tweaking. 2019-04-05 18:20:21 -04:00
Daniel Lemire c16ecd5138 A 2019-01-18 15:06:23 -05:00
Daniel Lemire 9bfc0a816f Updating scripts. 2019-01-17 19:40:38 -05:00
Daniel Lemire cb02143c2f Updating results. 2019-01-17 19:37:52 -05:00
Daniel Lemire 982e8b8577 Doing "all" cases. 2019-01-17 19:28:18 -05:00
Daniel Lemire 165a3d6cfd Saving... 2019-01-08 11:36:05 -05:00
Daniel Lemire 0244d8dfe6 Regenerating. 2019-01-08 11:32:07 -05:00
Daniel Lemire 3e74059cc3 Fix the shuffle. 2019-01-04 20:12:55 -05:00
Daniel Lemire fa6bdc6d43 Updated. 2019-01-03 16:14:45 -05:00
Daniel Lemire 58f7b55a09 Updating. 2019-01-03 15:57:34 -05:00
Daniel Lemire 2e9a92588b New data. 2019-01-03 15:37:01 -05:00
Daniel Lemire f99ff02fa2 Ok, some update. 2019-01-03 15:26:44 -05:00
Daniel Lemire ced53dd04d Updating. 2019-01-03 14:28:17 -05:00
Daniel Lemire 45e885c144 Updating stack plot. 2019-01-03 13:00:35 -05:00
Daniel Lemire b9f6adf574 Update. 2019-01-02 16:50:42 -05:00
Daniel Lemire 5dadcea426 Updating. 2019-01-02 16:48:08 -05:00
Daniel Lemire a07e1d94c0 Update. 2019-01-02 16:45:01 -05:00
Daniel Lemire 97e20fb684 Tweaking. 2018-12-27 20:36:35 -05:00
Daniel Lemire bb83ad47a4 Figures. 2018-12-27 19:35:29 -05:00
Daniel Lemire 0f9fab1d4f Saving... 2018-12-27 17:45:31 -05:00
Daniel Lemire 138bee8143 adding raw data 2018-12-27 17:44:10 -05:00
Daniel Lemire 7d6a2e29aa Saving. 2018-12-24 17:35:07 -05:00
Daniel Lemire d95c4c0371 Saving. 2018-12-24 17:34:40 -05:00
Daniel Lemire e77c212827 Adding another script. 2018-12-24 16:44:42 -05:00
Daniel Lemire 2afff77567 Updating. 2018-12-24 16:02:53 -05:00
Daniel Lemire d975fc7543 Saving.... 2018-12-24 15:46:12 -05:00
Daniel Lemire d3821a4b21 Saving... 2018-12-24 15:45:47 -05:00
Daniel Lemire 8db5da9ffe Adding cannonlake results. 2018-12-24 15:30:25 -05:00
Daniel Lemire 781d4ad191 Updating. 2018-12-24 15:21:13 -05:00
Daniel Lemire e31c76986d Updating. 2018-12-24 15:20:50 -05:00
Daniel Lemire 0c97db52c5 Fixing things up 2018-12-24 15:20:00 -05:00
Daniel Lemire 893e336574 Adding cannonlake results. 2018-12-24 15:14:03 -05:00
Daniel Lemire 9b27ffbd86 Adding stat model 2018-12-24 15:13:26 -05:00
Daniel Lemire 2d5783dae7 Updated 2018-12-24 15:11:51 -05:00
Daniel Lemire 579bc0d848 Done analysis. 2018-12-24 15:10:55 -05:00
Daniel Lemire 95d1dc24f6 Updating data 2018-12-24 15:02:35 -05:00
Daniel Lemire 3d9af62160 Done... 2018-12-24 13:19:35 -05:00
Daniel Lemire 16942a3442 Saving... 2018-12-24 13:19:17 -05:00
Daniel Lemire 3f157d955c Got model. 2018-12-24 12:36:45 -05:00