Skip to content

Commit e2b8dcf

Browse files
authored
Update README.md
1 parent 9bfc0a8 commit e2b8dcf

File tree

1 file changed

+34
-6
lines changed

1 file changed

+34
-6
lines changed

README.md

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,27 @@ twitter.json:
2525

2626
<img src="doc/twitter.jsonparseandstat.png" width="50%">
2727

28-
28+
On a skylake processor, the parsing speeds (in GB/s) of various processors on the twitter.json file are as follows.
29+
30+
| parser | GB/s |
31+
|---|---|
32+
| simdjson | 2.2 |
33+
| RapidJSON encoding-validation | 0.51|
34+
| RapidJSON encoding-validation, insitu | 0.71|
35+
| sajson (insitu, dynamic) | 0.70|
36+
| sajson (insitu, static) | 0.97|
37+
| dropbox | 0.14|
38+
| fastjson | 0.26|
39+
| gason | 0.85|
40+
| ultrajson | 0.42|
41+
| jsmn | 0.28|
42+
|cJSON | 0.34|
2943

3044
## Requirements
3145

3246
- We support platforms like Linux or macOS, as well as Windows through Visual Studio 2017 or better.
3347
- A processor with AVX2 (i.e., Intel processors starting with the Haswell microarchitecture released 2013, and processors from AMD starting with the Rizen)
34-
- A recent C++ compiler (e.g., GNU GCC or LLVM CLANG or Visual Studio 2017), we assume C++17
48+
- A recent C++ compiler (e.g., GNU GCC or LLVM CLANG or Visual Studio 2017), we assume C++17. GNU GCC 7 or better or LLVM's clang 6 or better.
3549
- Some benchmark scripts assume bash and other common utilities, but they are optional.
3650

3751
## License
@@ -105,7 +119,7 @@ Note: In some settings, it might be desirable to precompile `simdjson.cpp` inste
105119

106120
## Usage (old-school Makefile on platforms like Linux or macOS)
107121

108-
Requirements: recent clang or gcc, and make. We recommend at least GNU GCC/G++ 7. A system like Linux or macOS is expected.
122+
Requirements: recent clang or gcc, and make. We recommend at least GNU GCC/G++ 7 or LLVM clang 6. A system like Linux or macOS is expected.
109123

110124
To test:
111125

@@ -130,11 +144,25 @@ make benchmark
130144

131145
## Usage (CMake on platforms like Linux or macOS)
132146

133-
Requirements: You need a recent compiler like clang or gcc. We recommend at least GNU GCC/G++ 7.
147+
Requirements: We require a recent version of cmake. On macOS, the easiest way to install cmake might be to use [brew](https://brew.sh) and then type
148+
149+
```
150+
brew install cmake"
151+
```
152+
153+
There is an [equivalent brew on Linux which works the same way as well](https://linuxbrew.sh).
154+
155+
You need a recent compiler like clang or gcc. We recommend at least GNU GCC/G++ 7 or LLVM clang 6. For example, you can install a recent compiler with brew:
156+
157+
```
158+
brew install gcc@8
159+
```
160+
161+
Optional: You need to tell cmake which compiler you wish to use by setting the CC and CXX variables. Under bash, you can do so with commands such as ``export CC=gcc-7`` and ``export CXX=g++-7``.
162+
134163

135-
We require a recent version of cmake. On macOS, the easiest way to install cmake might be to use [brew](https://brew.sh) and then type "brew install cmake". There is an [equivalent brew on Linux which works the same way as well](https://linuxbrew.sh).
136164

137-
While in the project repository, do the following:
165+
Building: While in the project repository, do the following:
138166

139167
```
140168
mkdir build

0 commit comments

Comments
 (0)