Closed Loki-Astari closed 2 months ago
Sure. Thanks I will get on that.
Three files that probably need modifying:
init/Json-Performance
src/ThirdParty/Makefile
src/ThirdParty/JsonPerformanceTest.cpp
This just means you don't have SSH keys on github.
You can use the https version:
> git clone https://github.com/Loki-Astari/JsonBenchmark.git
I have setup git to use SSH because I find it more convenient than remembering a password.
Opps. There was a fix in the main branch that was not in your branch. That i have applied. If you try again it should work.
Sorry I seem to have messed up. Let me have a quick look.
OK. I have written a script so I don't have any typos in doing this.
So new branch name:
> git https://github.com/Loki-Astari/JsonBenchmark.git
> cd JsonBenchmark
> # Notice new branch name
> git checkout AddJsonPerformance
> ./configure
> make
> ./runOneTest all
That's not a real error.
In the file src/benchmark/Makefile
change this line:
FILE_WARNING_FLAGS += -Wno-unknown-pragmas
into
FILE_WARNING_FLAGS += -Wno-unknown-pragmas -Wno-dangling-reference
Btw shouldn't https://github.com/realtimechris/jsonifier be the submodule instead of https://github.com/realtimechris/json-performance?
Sorry. I was doing a lot of things yesterday. Feel free to fix and change as you see fit.
Alright so I've gotten it to build. Now my question is - for these tests:
virtual bool Parse(const char* j, size_t length, std::unique_ptr<ParseResultBase>& reply) const override
{
// Parse the json string in "j" with length "length"
// Your intermediate result is stored in "reply".
// If you fail to parse (or there is an error in the json) then don't set reply (just leave it null).
// Note every JSON parser is different so you should define your own reply structure.
// See the "UnivalueResult" above, configure this to hold your intermediate data.
// The value returned in "reply" will be passed as the first value to Stringify() and Prettify() (if it is not null).
return true;
}
virtual bool Stringify(const ParseResultBase& parseResult, std::unique_ptr<StringResultBase>& reply) const override
{
// Convert the structure you create in "Parse" into a JSON string.
// Put the string "reply"
// Note: See test.h for two common implementations of StringResultBase: => (StringResultUsingString / StringResultUsingStream)
// You can use these types or you can define your own.
return true;
}
virtual bool Prettify(const ParseResultBase& parseResult, std::unique_ptr<StringResultBase>& reply) const override
{
// Convert the structure you create in "Parse" into a JSON string.
// The expectation is that this is "Human readable Nice version"
// Put the string "reply"
// Note: See test.h for two common implementations of StringResultBase: => (StringResultUsingString / StringResultUsingStream)
// You can use these types or you can define your own.
return true;
}
How can it know what types it is parsing? Because it needs to have this information.
Most json parsers use an intermediate representation where they don't need to know the type. :-)
But if yours dose (and mine "ThorsSerializer" also needs) to know the incoming type we need to use a slightly different set up. Let me just put something together.
Just pushed a set of new files to the branch AddJsonPerformance
branch.
If you pick those up I hope the comments are clear.
If you need examples: Have a look at:
src/ThirdParty/ThorsSeriizerTest.cpp
src/ThirdParty/GlazeTest.cpp
Alright so when I try to run it with the following branch: https://github.com/RealTimeChris/JsonBenchmark/tree/AddJsonPerformance It throws this error:
Well that's a fun error. Let me try and re-create.
What platform are you building on?
Ubuntu 24.04.
You don't seem to have committed anything to that branch.
Thanks god you were not using windows. My Windows VM is so slow.
You don't seem to have committed anything to that branch.
It should be updated now.
Hmm. I can seem to reproduce the issue.
I built your master branch. Let me try again with the AddJsonPerformance branch.
Yes that makes sense as I have not committed anything to the master branch.
Hmm. I can seem to reproduce the issue.
I built your master branch. Let me try again with the AddJsonPerformance branch.
OK. I have a similar issue now. But I don't get the output you see. But it is failing to run.
OK. Mine works as expected.
The change I made was to the script runOneTest
where I changed the name of the parser to Jsonifier
loki@linuxcave:~/JsonBenchmark$ ./runOneTest
Parser: Jsonifier Passed: /home/loki/JsonBenchmark/data/jsonchecker_pass/pass03.json
Parser: Jsonifier Passed: /home/loki/JsonBenchmark/data/jsonchecker_pass/pass02.json
Parser: Jsonifier Passed: /home/loki/JsonBenchmark/data/jsonchecker_pass/pass01.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail26.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail13.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail11.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail03.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail15.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail17.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail08.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail19.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail02.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail33.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail27.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail10.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail09.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail29.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail14.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail16.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail21.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail20.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail22.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail31.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail25.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail07.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail28.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail30.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail05.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail32.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail23.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail06.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail24.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail12.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/jsonchecker_fail/fail04.json
Parse citm_catalog.json ... 8.3e-05 ms 1.98e+07 MB/s
Stringify citm_catalog.json ... 0 ms inf MB/s
Prettify citm_catalog.json ... 4.1e-05 ms 4.02e+07 MB/s
SaxRoundtrip citm_catalog.json ... 8.3e-05 ms 1.98e+07 MB/s
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip13.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip04.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip23.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip08.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip24.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip02.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip05.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip16.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip01.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip15.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip21.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip11.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip17.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip20.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip06.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip18.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip03.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip19.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip26.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip27.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip12.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip10.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip22.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip14.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip25.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip07.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/roundtrip/roundtrip09.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test60.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test29.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test59.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test9.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test44.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test38.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test1.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test46.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test56.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test16.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test27.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test10.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test64.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test8.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test4.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test53.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test34.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test49.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test36.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test15.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test13.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test23.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test20.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test21.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test50.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test17.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test26.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test24.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test19.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test52.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test57.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test6.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test55.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test47.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test58.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test22.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test28.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test69.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test7.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test37.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test33.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test25.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test12.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test3.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test2.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test31.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test66.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test39.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test42.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test67.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test45.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test43.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test40.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test61.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test48.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test18.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test51.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test41.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test65.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test62.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test54.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test35.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test63.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test32.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test30.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test14.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test5.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test68.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_float/test11.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_string/test9.json
Parser: Jsonifier Passed: /home/loki/JsonBenchmark/data/validate_string/test1.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_string/test10.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_string/test8.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_string/test6.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_string/test3.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_string/test2.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_string/test5.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/loki/JsonBenchmark/data/validate_string/test11.json
loki@linuxcave:~/JsonBenchmark$ uname -a
Linux linuxcave 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 02:32:42 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux
loki@linuxcave:~/JsonBenchmark$
Alright so when I run: git clone https://github.com/RealTimeChris/JsonBenchmark --branch=AddJsonPerformance cd JsonBenchmark ./configure make ./runOneTest I get the following:
That's basically what I did.
Can you check the ownership and permission of the directories?
Especially the data
directory (thats where all the test data lives).
Basically the call to opendir()
is returning null.
From the man page:
The opendir() function opens the directory named by filename, associates a directory stream with it and returns a pointer to be used to identify the directory stream in subsequent operations. The pointer
NULL is returned if filename cannot be accessed, or if it cannot malloc(3) enough memory to hold the whole thing.
-rwxrwxrwx 1 chris chris 9051 Sep 5 02:30 LICENSE -rwxrwxrwx 1 chris chris 156 Sep 5 02:30 Makefile -rwxrwxrwx 1 chris chris 962 Sep 5 02:31 Makefile.config -rwxrwxrwx 1 chris chris 213 Sep 5 02:30 Makefile.config.in -rwxrwxrwx 1 chris chris 1 Sep 5 02:31 Makefile.extra -rwxrwxrwx 1 chris chris 1 Sep 5 02:30 Makefile.extra.am -rwxrwxrwx 1 chris chris 1 Sep 5 02:30 Makefile.extra.in -rwxrwxrwx 1 chris chris 154 Sep 5 02:30 Notes.2024 -rwxrwxrwx 1 chris chris 6090 Sep 5 02:30 README.md drwxrwxrwx 18 chris chris 4096 Sep 5 02:31 build -rwxrwxrwx 1 chris chris 2512 Sep 5 02:31 config.h -rwxrwxrwx 1 chris chris 2260 Sep 5 02:30 config.h.in -rwxrwxrwx 1 chris chris 32883 Sep 5 02:31 config.log -rwxrwxrwx 1 chris chris 69261 Sep 5 02:31 config.status -rwxrwxrwx 1 chris chris 631278 Sep 5 02:30 configure -rwxrwxrwx 1 chris chris 714 Sep 5 02:30 configure.ac drwxrwxrwx 8 chris chris 4096 Sep 5 02:30 data -rwxrwxrwx 1 chris chris 3440 Sep 5 02:30 git_deploy_key.enc drwxrwxrwx 2 chris chris 4096 Sep 5 02:30 init -rwxrwxrwx 1 chris chris 305 Sep 5 02:30 init3rdParty -rwxrwxrwx 1 chris chris 448 Sep 5 02:30 initPlatform -rwxrwxrwx 1 chris chris 354235 Sep 5 02:31 libtool -rwxrwxrwx 1 chris chris 623 Sep 5 02:38 runOneTest drwxrwxrwx 2 chris chris 4096 Sep 5 02:30 script -rwxrwxrwx 1 chris chris 947 Sep 5 02:30 setUpNewProject drwxrwxrwx 5 chris chris 4096 Sep 5 02:30 src -rwxrwxrwx 1 chris chris 23 Sep 5 02:31 stamp-h1 drwxrwxrwx 3 chris chris 4096 Sep 5 02:30 thirdparty
Can you change line 102 in src/benchmark/filesystem.h to
throw std::runtime_error(std::string("ThorsAnvil::FileSystem::DirectoryIterator: DirectoryFailed to Create Dir Object: >") + path.str() + "<");
That way we can verify that it is trying to open the correct directory.
Does not look you compiled before running. Does not include the file information.
If you have compiled then it looks like it is picking up another shared library from somewhere.
Did you run make install
at some point?
That would have installed the libraries in the system foleder.
check and remove anything you have installed in the system
rm -rf /usr/local/include/Memory
rm -rf /usr/local/include/ThirdParty
rm -rf /usr/local/bin/benchmark
rm -rf /usr/local/bin/memory
rm -rf /usr/local/lib/libMemory.so
rm -rf /usr/local/lib/LIBThirdParty.so
Check which benchmark you are running
loki@linuxcave:~/JsonBenchmark$ which benchmark
/home/loki/JsonBenchmark/build/bin/benchmark
loki@linuxcave:~/JsonBenchmark$ ldd /home/loki/JsonBenchmark/build/bin/benchmark
linux-vdso.so.1 (0x0000e09964412000)
libThirdParty.so => /home/loki/JsonBenchmark/build/lib/libThirdParty.so (0x0000e09964350000)
libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000e09964000000)
libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000e09964310000)
libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000e09963e40000)
/lib/ld-linux-aarch64.so.1 (0x0000e099643d5000)
libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000e09963d90000)
OK. Have to go to bed. I'll check back in the morning.
I found the issue - it was because there was a benchmark file in /usr/local/bin that it was running for some reason lol.
Glad that worked out.
Alright so I think I've got it successfully building and running on the https://github.com/RealTimeChris/JsonBenchmark/tree/AddJsonifier branch.
I get an error here:
src/ThirdParty/../../thirdparty/jsonifier/Include/jsonifier/Validate_Impl.hpp:95:32: error: '&&' within '||' [-Werror,-Wlogical-op-parentheses]
if (!*iter || **iter != ',' && **iter != '}') {
~~ ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
src/ThirdParty/../../thirdparty/jsonifier/Include/jsonifier/Validate_Impl.hpp:95:32: note: place parentheses around the '&&' expression to silence this warning
if (!*iter || **iter != ',' && **iter != '}') {
^
( )
src/ThirdParty/../../thirdparty/jsonifier/Include/jsonifier/Validate_Impl.hpp:154:32: error: '&&' within '||' [-Werror,-Wlogical-op-parentheses]
if (!*iter || **iter != ',' && **iter != ']') {
~~ ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
src/ThirdParty/../../thirdparty/jsonifier/Include/jsonifier/Validate_Impl.hpp:154:32: note: place parentheses around the '&&' expression to silence this warning
if (!*iter || **iter != ',' && **iter != ']') {
I can suppress it with -Wno-logical-op-parentheses
And this:
src/ThirdParty/../../thirdparty/jsonifier/Include/jsonifier/ISA/SimdCommon.hpp:53:42: error: 'static' function 'prefixXor' declared in header file should be declared 'static inline' [-Werror,-Wunneeded-internal-declaration]
JSONIFIER_ALWAYS_INLINE static uint64_t prefixXor(uint64_t prevInString) noexcept {
Suppressed with -Wno-unneeded-internal-declaration
I get:
BatCave-2:JsonBenchmark martinyork$ vi runOneTest
BatCave-2:JsonBenchmark martinyork$ ./runOneTest
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_pass/pass01.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_pass/pass03.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_pass/pass02.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail12.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail04.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail28.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail08.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail24.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail32.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail33.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail25.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail09.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail29.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail05.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail13.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail22.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail14.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail02.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail03.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail15.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail23.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail19.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail20.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail16.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail17.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail21.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail06.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail10.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail30.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail26.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail27.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail31.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail11.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/jsonchecker_fail/fail07.json
Parse canada.json ... 0.131 ms 1.64e+04 MB/s
Stringify canada.json ... 8.3e-05 ms 2.59e+07 MB/s
Prettify canada.json ... 4.1e-05 ms 5.24e+07 MB/s
SaxRoundtrip canada.json ... 0.135 ms 1.59e+04 MB/s
Parse twitter.json ... 0.0393 ms 1.53e+04 MB/s
Stringify twitter.json ... 0.000166 ms 3.63e+06 MB/s
Prettify twitter.json ... 0.000125 ms 4.82e+06 MB/s
SaxRoundtrip twitter.json ... 0.0371 ms 1.62e+04 MB/s
Parse citm_catalog.json ... 0.101 ms 1.64e+04 MB/s
Stringify citm_catalog.json ... 0.000166 ms 9.92e+06 MB/s
Prettify citm_catalog.json ... 0.000167 ms 9.86e+06 MB/s
SaxRoundtrip citm_catalog.json ... 0.101 ms 1.63e+04 MB/s
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/roundtrip/roundtrip25.json
./runOneTest: line 17: 29514 Segmentation fault: 11 benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
./runOneTest: line 17: 29515 Segmentation fault: 11 benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
./runOneTest: line 17: 29516 Segmentation fault: 11 benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
./runOneTest: line 17: 29517 Segmentation fault: 11 benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
./runOneTest: line 17: 29518 Segmentation fault: 11 benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
./runOneTest: line 17: 29519 Segmentation fault: 11 benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/roundtrip/roundtrip24.json
./runOneTest: line 17: 29521 Segmentation fault: 11 benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
./runOneTest: line 17: 29522 Segmentation fault: 11 benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/roundtrip/roundtrip23.json
./runOneTest: line 17: 29524 Segmentation fault: 11 benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
./runOneTest: line 17: 29525 Segmentation fault: 11 benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/roundtrip/roundtrip22.json
./runOneTest: line 17: 29527 Segmentation fault: 11 benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
./runOneTest: line 17: 29528 Segmentation fault: 11 benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
./runOneTest: line 17: 29529 Segmentation fault: 11 benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
./runOneTest: line 17: 29530 Segmentation fault: 11 benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/roundtrip/roundtrip21.json
./runOneTest: line 17: 29532 Segmentation fault: 11 benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
./runOneTest: line 17: 29533 Segmentation fault: 11 benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/roundtrip/roundtrip27.json
./runOneTest: line 17: 29535 Segmentation fault: 11 benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
./runOneTest: line 17: 29536 Segmentation fault: 11 benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
./runOneTest: line 17: 29537 Segmentation fault: 11 benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
./runOneTest: line 17: 29538 Segmentation fault: 11 benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/roundtrip/roundtrip26.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test53.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test45.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test12.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test69.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test28.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test49.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test65.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test32.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test24.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test25.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test33.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test64.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test48.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test29.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test68.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test13.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test44.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test1.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test52.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test59.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test18.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test63.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test34.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test22.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test55.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test6.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test43.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test14.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test38.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test39.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test15.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test42.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test7.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test54.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test23.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test35.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test62.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test19.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test58.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test20.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test36.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test61.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test8.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test16.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test41.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test4.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test57.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test56.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test5.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test40.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test17.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test9.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test60.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test37.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test21.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test10.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test47.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test2.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test51.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test26.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test30.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test67.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test66.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test31.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test27.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test50.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test3.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test46.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_float/test11.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_string/test1.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_string/test6.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_string/test8.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_string/test5.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_string/test9.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_string/test10.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_string/test2.json
Parser: Jsonifier Passed: /Users/martinyork/X/JsonBenchmark/data/validate_string/test3.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /Users/martinyork/X/JsonBenchmark/data/validate_string/test11.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/jsonchecker_pass/pass03.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/jsonchecker_pass/pass01.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_pass/pass02.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail17.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail13.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail19.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail05.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail12.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail20.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail24.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail15.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail27.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail14.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail16.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail03.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail04.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail02.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail11.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail26.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail10.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail21.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail22.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail29.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail25.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail23.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail06.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail31.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail32.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail30.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail09.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail08.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail07.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail28.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/jsonchecker_fail/fail33.json
Parse twitter.json ... 0.0364 ms 1.66e+04 MB/s
Stringify twitter.json ... 0.000206 ms 2.92e+06 MB/s
Prettify twitter.json ... 0.000206 ms 2.92e+06 MB/s
SaxRoundtrip twitter.json ... 0.0352 ms 1.71e+04 MB/s
Parse citm_catalog.json ... 0.0957 ms 1.72e+04 MB/s
Stringify citm_catalog.json ... 0.000206 ms 8e+06 MB/s
Prettify citm_catalog.json ... 0.000309 ms 5.33e+06 MB/s
SaxRoundtrip citm_catalog.json ... 0.0964 ms 1.71e+04 MB/s
Parse canada.json ... 0.134 ms 1.61e+04 MB/s
Stringify canada.json ... 0.000103 ms 2.08e+07 MB/s
Prettify canada.json ... 0.000103 ms 2.08e+07 MB/s
SaxRoundtrip canada.json ... 0.142 ms 1.51e+04 MB/s
terminate called after throwing an instance of 'std::bad_cast'
what(): std::bad_cast
./runOneTest: line 17: 828484 Aborted benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
terminate called after throwing an instance of 'std::bad_cast'
what(): std::bad_cast
./runOneTest: line 17: 828485 Aborted benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
terminate called after throwing an instance of 'std::bad_cast'
what(): std::bad_cast
./runOneTest: line 17: 828486 Aborted benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
terminate called after throwing an instance of 'std::bad_cast'
what(): std::bad_cast
./runOneTest: line 17: 828487 Aborted benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
terminate called after throwing an instance of 'std::bad_cast'
what(): std::bad_cast
./runOneTest: line 17: 828488 Aborted benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
terminate called after throwing an instance of 'std::bad_cast'
what(): std::bad_cast
./runOneTest: line 17: 828489 Aborted benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
terminate called after throwing an instance of 'std::bad_cast'
what(): std::bad_cast
./runOneTest: line 17: 828490 Aborted benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
terminate called after throwing an instance of 'std::bad_cast'
what(): std::bad_cast
./runOneTest: line 17: 828491 Aborted benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
terminate called after throwing an instance of 'std::bad_cast'
what(): std::bad_cast
./runOneTest: line 17: 828492 Aborted benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/roundtrip/roundtrip27.json
terminate called after throwing an instance of 'std::bad_cast'
what(): std::bad_cast
./runOneTest: line 17: 828494 Aborted benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
terminate called after throwing an instance of 'std::bad_cast'
what(): std::bad_cast
./runOneTest: line 17: 828495 Aborted benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
terminate called after throwing an instance of 'std::bad_cast'
what(): std::bad_cast
./runOneTest: line 17: 828496 Aborted benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/roundtrip/roundtrip21.json
terminate called after throwing an instance of 'std::bad_cast'
what(): std::bad_cast
./runOneTest: line 17: 828498 Aborted benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/roundtrip/roundtrip23.json
terminate called after throwing an instance of 'std::bad_cast'
what(): std::bad_cast
./runOneTest: line 17: 828500 Aborted benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/roundtrip/roundtrip26.json
terminate called after throwing an instance of 'std::bad_cast'
what(): std::bad_cast
./runOneTest: line 17: 828502 Aborted benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/roundtrip/roundtrip25.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/roundtrip/roundtrip24.json
terminate called after throwing an instance of 'std::bad_cast'
what(): std::bad_cast
./runOneTest: line 17: 828505 Aborted benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
terminate called after throwing an instance of 'std::bad_cast'
what(): std::bad_cast
./runOneTest: line 17: 828506 Aborted benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/roundtrip/roundtrip22.json
terminate called after throwing an instance of 'std::bad_cast'
what(): std::bad_cast
./runOneTest: line 17: 828508 Aborted benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
terminate called after throwing an instance of 'std::bad_cast'
what(): std::bad_cast
./runOneTest: line 17: 828509 Aborted benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
terminate called after throwing an instance of 'std::bad_cast'
what(): std::bad_cast
./runOneTest: line 17: 828510 Aborted benchmark --append --filter=${filter} --parser=${parser} ${flags} Conformance.csv Performance.csv
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test25.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test28.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test12.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test51.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test43.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test57.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test54.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test18.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test30.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test41.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test13.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test52.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test22.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test60.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test65.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test21.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test45.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test40.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test2.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test10.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test38.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test4.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test44.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test16.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test39.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test48.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test29.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test53.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test37.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test59.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test33.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test6.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test9.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test46.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test1.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test32.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test11.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test61.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test64.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test67.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test56.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test34.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test66.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test68.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test55.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test58.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test47.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test3.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test7.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test19.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test8.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test14.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test20.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test26.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test27.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test50.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test62.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test42.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test5.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test35.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test49.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test17.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test69.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test24.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test15.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test23.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test63.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test31.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_float/test36.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_string/test2.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_string/test10.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_string/test6.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_string/test9.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_string/test1.json
Parser: Jsonifier
Pass: 0
Fail: 1
Failed: /home/chris/JsonBenchmark/data/validate_string/test11.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_string/test3.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_string/test8.json
Parser: Jsonifier Passed: /home/chris/JsonBenchmark/data/validate_string/test5.json
What does it mean that it segfaulted on those tests? Does that invalidate the performance results at all?
The performance tests look good:
Parse twitter.json ... 0.0364 ms 1.66e+04 MB/s
Stringify twitter.json ... 0.000206 ms 2.92e+06 MB/s
Prettify twitter.json ... 0.000206 ms 2.92e+06 MB/s
SaxRoundtrip twitter.json ... 0.0352 ms 1.71e+04 MB/s
Parse citm_catalog.json ... 0.0957 ms 1.72e+04 MB/s
Stringify citm_catalog.json ... 0.000206 ms 8e+06 MB/s
Prettify citm_catalog.json ... 0.000309 ms 5.33e+06 MB/s
SaxRoundtrip citm_catalog.json ... 0.0964 ms 1.71e+04 MB/s
Parse canada.json ... 0.134 ms 1.61e+04 MB/s
Stringify canada.json ... 0.000103 ms 2.08e+07 MB/s
Prettify canada.json ... 0.000103 ms 2.08e+07 MB/s
SaxRoundtrip canada.json ... 0.142 ms 1.51e+04 MB/s
Any test that segfaults is the same as failing the test.
So it looks like a bunch of the roundtrip tests failed.
The actual output that is used by php script to show display the graphs.
BatCave-2:JsonBenchmark martinyork$ cat Performance.csv
1. Parse,Jsonifier,canada.json,0.131084,56,56,1,0,0,0
2. Stringify,Jsonifier,canada.json,4.1e-05,80,80,2,0,0,0
3. Prettify,Jsonifier,canada.json,4.2e-05,80,80,2,0,0,0
5. SaxRoundtrip,Jsonifier,canada.json,0.131167,80,136,3,0,0,0
1. Parse,Jsonifier,twitter.json,0.03825,184,184,1,0,0,0
2. Stringify,Jsonifier,twitter.json,0.000125,288,288,2,0,0,0
3. Prettify,Jsonifier,twitter.json,0.000125,288,288,2,0,0,0
5. SaxRoundtrip,Jsonifier,twitter.json,0.037166,288,472,3,0,0,0
1. Parse,Jsonifier,citm_catalog.json,0.100667,272,272,1,0,0,0
2. Stringify,Jsonifier,citm_catalog.json,0.000208,336,336,2,0,0,0
3. Prettify,Jsonifier,citm_catalog.json,0.000167,336,336,2,0,0,0
5. SaxRoundtrip,Jsonifier,citm_catalog.json,0.100834,336,608,3,0,0,0
BatCave-2:JsonBenchmark martinyork$ cat Conformance.csv
1. Parse Validation,Jsonifier,pass01,true
1. Parse Validation,Jsonifier,pass03,true
1. Parse Validation,Jsonifier,pass02,false
1. Parse Validation,Jsonifier,fail12,false
1. Parse Validation,Jsonifier,fail04,true
1. Parse Validation,Jsonifier,fail28,false
1. Parse Validation,Jsonifier,fail08,false
1. Parse Validation,Jsonifier,fail24,false
1. Parse Validation,Jsonifier,fail32,false
1. Parse Validation,Jsonifier,fail33,false
1. Parse Validation,Jsonifier,fail25,true
1. Parse Validation,Jsonifier,fail09,false
1. Parse Validation,Jsonifier,fail29,false
1. Parse Validation,Jsonifier,fail05,true
1. Parse Validation,Jsonifier,fail13,false
1. Parse Validation,Jsonifier,fail22,false
1. Parse Validation,Jsonifier,fail14,false
1. Parse Validation,Jsonifier,fail02,false
1. Parse Validation,Jsonifier,fail03,false
1. Parse Validation,Jsonifier,fail15,false
1. Parse Validation,Jsonifier,fail23,false
1. Parse Validation,Jsonifier,fail19,false
1. Parse Validation,Jsonifier,fail20,false
1. Parse Validation,Jsonifier,fail16,false
1. Parse Validation,Jsonifier,fail17,false
1. Parse Validation,Jsonifier,fail21,false
1. Parse Validation,Jsonifier,fail06,false
1. Parse Validation,Jsonifier,fail10,false
1. Parse Validation,Jsonifier,fail30,false
1. Parse Validation,Jsonifier,fail26,false
1. Parse Validation,Jsonifier,fail27,true
1. Parse Validation,Jsonifier,fail31,false
1. Parse Validation,Jsonifier,fail11,false
1. Parse Validation,Jsonifier,fail07,false
4. Roundtrip,Jsonifier,roundtrip25,false
4. Roundtrip,Jsonifier,roundtrip24,false
4. Roundtrip,Jsonifier,roundtrip23,false
4. Roundtrip,Jsonifier,roundtrip22,false
4. Roundtrip,Jsonifier,roundtrip21,false
4. Roundtrip,Jsonifier,roundtrip27,false
4. Roundtrip,Jsonifier,roundtrip26,false
2. Parse Double,Jsonifier,test53,true
2. Parse Double,Jsonifier,test45,true
2. Parse Double,Jsonifier,test12,true
2. Parse Double,Jsonifier,test69,true
2. Parse Double,Jsonifier,test28,true
2. Parse Double,Jsonifier,test49,true
2. Parse Double,Jsonifier,test65,true
2. Parse Double,Jsonifier,test32,true
2. Parse Double,Jsonifier,test24,true
2. Parse Double,Jsonifier,test25,true
2. Parse Double,Jsonifier,test33,true
2. Parse Double,Jsonifier,test64,true
2. Parse Double,Jsonifier,test48,true
2. Parse Double,Jsonifier,test29,true
2. Parse Double,Jsonifier,test68,true
2. Parse Double,Jsonifier,test13,true
2. Parse Double,Jsonifier,test44,true
2. Parse Double,Jsonifier,test1,true
2. Parse Double,Jsonifier,test52,true
2. Parse Double,Jsonifier,test59,true
2. Parse Double,Jsonifier,test18,true
2. Parse Double,Jsonifier,test63,true
2. Parse Double,Jsonifier,test34,true
2. Parse Double,Jsonifier,test22,true
2. Parse Double,Jsonifier,test55,true
2. Parse Double,Jsonifier,test6,true
2. Parse Double,Jsonifier,test43,true
2. Parse Double,Jsonifier,test14,true
2. Parse Double,Jsonifier,test38,true
2. Parse Double,Jsonifier,test39,true
2. Parse Double,Jsonifier,test15,true
2. Parse Double,Jsonifier,test42,true
2. Parse Double,Jsonifier,test7,true
2. Parse Double,Jsonifier,test54,true
2. Parse Double,Jsonifier,test23,true
2. Parse Double,Jsonifier,test35,true
2. Parse Double,Jsonifier,test62,true
2. Parse Double,Jsonifier,test19,true
2. Parse Double,Jsonifier,test58,true
2. Parse Double,Jsonifier,test20,true
2. Parse Double,Jsonifier,test36,true
2. Parse Double,Jsonifier,test61,true
2. Parse Double,Jsonifier,test8,true
2. Parse Double,Jsonifier,test16,true
2. Parse Double,Jsonifier,test41,true
2. Parse Double,Jsonifier,test4,true
2. Parse Double,Jsonifier,test57,true
2. Parse Double,Jsonifier,test56,true
2. Parse Double,Jsonifier,test5,true
2. Parse Double,Jsonifier,test40,true
2. Parse Double,Jsonifier,test17,true
2. Parse Double,Jsonifier,test9,true
2. Parse Double,Jsonifier,test60,true
2. Parse Double,Jsonifier,test37,true
2. Parse Double,Jsonifier,test21,true
2. Parse Double,Jsonifier,test10,true
2. Parse Double,Jsonifier,test47,true
2. Parse Double,Jsonifier,test2,true
2. Parse Double,Jsonifier,test51,true
2. Parse Double,Jsonifier,test26,true
2. Parse Double,Jsonifier,test30,true
2. Parse Double,Jsonifier,test67,true
2. Parse Double,Jsonifier,test66,true
2. Parse Double,Jsonifier,test31,true
2. Parse Double,Jsonifier,test27,true
2. Parse Double,Jsonifier,test50,true
2. Parse Double,Jsonifier,test3,true
2. Parse Double,Jsonifier,test46,true
2. Parse Double,Jsonifier,test11,true
3. Parse String,Jsonifier,test1,true
3. Parse String,Jsonifier,test6,true
3. Parse String,Jsonifier,test8,true
3. Parse String,Jsonifier,test5,true
3. Parse String,Jsonifier,test9,true
3. Parse String,Jsonifier,test10,true
3. Parse String,Jsonifier,test2,true
3. Parse String,Jsonifier,test3,true
3. Parse String,Jsonifier,test11,false
I will validate that the performance tests do what you are supposed to.
If they checkout out and you are good I will merge into master and publish tonight.
If you want more time to fix some of the failing tests let me know.
Interesting. It seems that I made an error in the code.
I posted on Reddit a couple of days ago about a comparison of C++ JSON libraries.
There were several comments that I missed your library. Any chance you want to help and add your library?
I have simplified the project in a branch to make it easy for you to add the appropriate code: