Skip to content

Commit ca8dddb

Browse files
authored
Merge pull request #28 from velveteer/simdjson-update
Support GHC 9.8
2 parents 99c1cc1 + d2ea342 commit ca8dddb

File tree

12 files changed

+133
-140
lines changed

12 files changed

+133
-140
lines changed

.github/workflows/ci.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
name: ${{ matrix.os }} / ghc ${{ matrix.ghc }}
1616
strategy:
1717
matrix:
18-
ghc: ['9.6', '9.4', '9.2']
18+
ghc: ['9.8', '9.6', '9.4']
1919
cabal: ['latest']
2020
os: [ubuntu-latest, macOS-latest, windows-latest]
2121
steps:

README.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -85,27 +85,27 @@ footprint as small as possible.
8585

8686
### Specs
8787

88-
* GHC 9.4.6 w/ -O1
88+
* GHC 9.8.2 w/ -O1
8989
* aeson-2.2 with text > 2.0
9090
* Apple M1 Pro
9191

92-
![](https://raw.githubusercontent.com/velveteer/hermes/67a95db4a5947273a1e870cc7f5caf809b5a5cc6/hermes-bench/bench.svg)
92+
![](hermes-bench/bench.svg)
9393

9494
<!-- AUTO-GENERATED-CONTENT:START (BENCHES) -->
95-
| Name | Mean (ps) | 2*Stdev (ps) | Allocated | Copied | Peak Memory |
96-
| --------------------------------------- | ------------ | ------------ | --------- | --------- | ----------- |
97-
| All.Decode.Arrays.Hermes | 1175725781 | 54759208 | 4099501 | 43244 | 94371840 |
98-
| All.Decode.Arrays.Aeson | 17117956250 | 1324702570 | 70812337 | 2085012 | 94371840 |
99-
| All.Decode.Persons.Hermes | 49225550000 | 3391444300 | 122950141 | 36530446 | 178257920 |
100-
| All.Decode.Persons.Aeson | 128953450000 | 4155620532 | 349497230 | 130912314 | 254803968 |
101-
| All.Decode.Partial Twitter.Hermes | 267287695 | 16904586 | 275887 | 221 | 254803968 |
102-
| All.Decode.Partial Twitter.JsonStream | 2402178125 | 215207566 | 15092673 | 12836 | 254803968 |
103-
| All.Decode.Partial Twitter.Aeson | 2660171093 | 199457262 | 12321841 | 142684 | 254803968 |
104-
| All.Decode.Persons (Aeson Value).Hermes | 111609450000 | 9216401382 | 259403554 | 98699866 | 254803968 |
105-
| All.Decode.Persons (Aeson Value).Aeson | 107734000000 | 4572199996 | 278065926 | 108579512 | 254803968 |
106-
| All.Decode.Twitter (Aeson Value).Hermes | 2780895703 | 86226624 | 10801460 | 188849 | 254803968 |
107-
| All.Decode.Twitter (Aeson Value).Aeson | 2811317187 | 274449392 | 12168647 | 219841 | 254803968 |
108-
| |
95+
| Name | Mean (ps) | 2*Stdev (ps) | Allocated | Copied | Peak Memory |
96+
| -------------------------------- | ------------ | ------------ | --------- | --------- | ----------- |
97+
| All.Hermes Arrays | 1176636718 | 112205192 | 4021162 | 42064 | 94371840 |
98+
| All.Aeson Arrays | 17213496875 | 475332150 | 71210605 | 1894420 | 94371840 |
99+
| All.Hermes Persons | 44490500000 | 2894869504 | 128146854 | 23270453 | 134217728 |
100+
| All.Aeson Persons | 129197600000 | 10025634382 | 338386171 | 119316159 | 227540992 |
101+
| All.Hermes Partial Twitter | 280497070 | 13556162 | 276618 | 281 | 227540992 |
102+
| All.Aeson Partial Twitter | 2791673437 | 155280944 | 11964607 | 187669 | 227540992 |
103+
| All.JsonStream Partial Twitter | 2446430468 | 157827966 | 15090720 | 13248 | 227540992 |
104+
| All.Hermes Persons (Aeson Value) | 115947050000 | 8397106074 | 276664184 | 105937104 | 227540992 |
105+
| All.Aeson Persons (Aeson Value) | 104844225000 | 3647809494 | 269685425 | 96421514 | 250609664 |
106+
| All.Hermes Twitter (Aeson Value) | 2933007812 | 223414634 | 11107284 | 189841 | 250609664 |
107+
| All.Aeson Twitter (Aeson Value) | 2863515625 | 212391518 | 11652717 | 187635 | 250609664 |
108+
| |
109109
<!-- AUTO-GENERATED-CONTENT:END (BENCHES) -->
110110

111111
## Performance Tips

cbits/lib.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include "simdjson.h"
1+
#include "../simdjson/singleheader/simdjson.h"
22
using namespace simdjson;
33
extern "C" {
44
ondemand::parser *parser_init(size_t max_cap) {

hermes-bench/bench.csv

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
Name,Mean (ps),2*Stdev (ps),Allocated,Copied,Peak Memory
2-
All.Decode.Arrays.Hermes,1175725781,54759208,4099501,43244,94371840
3-
All.Decode.Arrays.Aeson,17117956250,1324702570,70812337,2085012,94371840
4-
All.Decode.Persons.Hermes,49225550000,3391444300,122950141,36530446,178257920
5-
All.Decode.Persons.Aeson,128953450000,4155620532,349497230,130912314,254803968
6-
All.Decode.Partial Twitter.Hermes,267287695,16904586,275887,221,254803968
7-
All.Decode.Partial Twitter.JsonStream,2402178125,215207566,15092673,12836,254803968
8-
All.Decode.Partial Twitter.Aeson,2660171093,199457262,12321841,142684,254803968
9-
All.Decode.Persons (Aeson Value).Hermes,111609450000,9216401382,259403554,98699866,254803968
10-
All.Decode.Persons (Aeson Value).Aeson,107734000000,4572199996,278065926,108579512,254803968
11-
All.Decode.Twitter (Aeson Value).Hermes,2780895703,86226624,10801460,188849,254803968
12-
All.Decode.Twitter (Aeson Value).Aeson,2811317187,274449392,12168647,219841,254803968
2+
All.Hermes Arrays,1176636718,112205192,4021162,42064,94371840
3+
All.Aeson Arrays,17213496875,475332150,71210605,1894420,94371840
4+
All.Hermes Persons,44490500000,2894869504,128146854,23270453,134217728
5+
All.Aeson Persons,129197600000,10025634382,338386171,119316159,227540992
6+
All.Hermes Partial Twitter,280497070,13556162,276618,281,227540992
7+
All.Aeson Partial Twitter,2791673437,155280944,11964607,187669,227540992
8+
All.JsonStream Partial Twitter,2446430468,157827966,15090720,13248,227540992
9+
All.Hermes Persons (Aeson Value),115947050000,8397106074,276664184,105937104,227540992
10+
All.Aeson Persons (Aeson Value),104844225000,3647809494,269685425,96421514,250609664
11+
All.Hermes Twitter (Aeson Value),2933007812,223414634,11107284,189841,250609664
12+
All.Aeson Twitter (Aeson Value),2863515625,212391518,11652717,187635,250609664

hermes-bench/bench.svg

Lines changed: 69 additions & 69 deletions
Loading

hermes-bench/cabal.project

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,3 @@ packages:
33
../hermes-json.cabal
44
../hermes-aeson/hermes-aeson.cabal
55
tests: True
6-
allow-newer: all

hermes-bench/hermes-bench.cabal

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ extra-source-files:
1212
benchmark bench
1313
build-depends:
1414
aeson >= 2.1.2.1,
15-
base >= 4.14.3 && < 4.18,
16-
bytestring >= 0.10.12 && < 0.12,
17-
deepseq >= 1.4.4 && < 1.5,
18-
containers >= 0.6.5 && < 0.7,
15+
base >= 4.14.3 && < 4.20,
16+
bytestring >= 0.10.12 && < 0.13,
17+
deepseq >= 1.4.4 && < 1.6,
18+
containers >= 0.6.5 && < 0.8,
1919
json-stream >= 0.4 && < 0.6,
2020
scientific >= 0.3.7 && < 0.6,
2121
text >= 2.0 && < 2.2,
@@ -25,7 +25,10 @@ benchmark bench
2525
hermes-aeson
2626
default-extensions: OverloadedStrings
2727
default-language: Haskell2010
28-
ghc-options: -Wall
28+
ghc-options:
29+
-with-rtsopts=-A64m
30+
-fproc-alignment=64
31+
-Wall
2932
hs-source-dirs: src
3033
main-is: Main.hs
3134
type: exitcode-stdio-1.0

0 commit comments

Comments
 (0)