Performance charts and test results of Picojson
This project is maintained by kaidokert
Generated deeply nested JSON parsing stack behavior test.
Test code can be found in avr_demo, the numbers are as of version 0.2.0 from test run here.
serde: The default serde-json-core implementation.slice-tiny: picojson SliceParser with its default 32-level nesting limit.slice-small: picojson SliceParser configured for a 512-level nesting limit.slice-huge: picojson SliceParser configured for a 2048-level nesting limit.stream-tiny: picojson StreamParser with its default 32-level nesting limit.stream-small: picojson StreamParser configured for a 512-level nesting limit.stream-huge: picojson StreamParser configured for a 2048-level nesting limit.| Nesting Depth | serde | slice-tiny | slice-small | slice-huge | stream-tiny | stream-small | stream-huge |
|---|---|---|---|---|---|---|---|
| 7 levels | 208 bytes | 201 bytes | 305 bytes | 497 bytes | 160 bytes | 263 bytes | 455 bytes |
| 9 levels | 224 bytes | 201 bytes | 305 bytes | 497 bytes | 160 bytes | 263 bytes | 455 bytes |
| 30 levels | 392 bytes | 201 bytes | 305 bytes | 497 bytes | 160 bytes | 263 bytes | 455 bytes |
| 33 levels | 416 bytes | Clean Fail | 305 bytes | 497 bytes | Clean Fail | 263 bytes | 455 bytes |
| 62 levels | 648 bytes | Clean Fail | 305 bytes | 497 bytes | Clean Fail | 263 bytes | 455 bytes |
| 65 levels | 672 bytes | Clean Fail | 305 bytes | 497 bytes | Clean Fail | 263 bytes | 455 bytes |
| 126 levels | 1160 bytes | Clean Fail | 305 bytes | 497 bytes | Clean Fail | 263 bytes | 455 bytes |
| 129 levels | 1184 bytes | Clean Fail | 305 bytes | 497 bytes | Clean Fail | 263 bytes | 455 bytes |
| 254 levels | 2184 bytes | Clean Fail | 305 bytes | 497 bytes | Clean Fail | 263 bytes | 455 bytes |
| 257 levels | 2208 bytes | Clean Fail | 305 bytes | 497 bytes | Clean Fail | 263 bytes | 455 bytes |
| 510 levels | 4232 bytes | Clean Fail | 305 bytes | 497 bytes | Clean Fail | 263 bytes | 455 bytes |
| 513 levels | 4256 bytes | Clean Fail | Clean Fail | 497 bytes | Clean Fail | Clean Fail | 455 bytes |
| 1022 levels | Stack Overflow (Binary Output) | Clean Fail | Clean Fail | 497 bytes | Clean Fail | Clean Fail | 455 bytes |
| 1025 levels | Stack Overflow (Binary Output) | Clean Fail | Clean Fail | 497 bytes | Clean Fail | Clean Fail | 455 bytes |
| Configuration | Binary Size |
|---|---|
| serde | 7.4 KB |
| picojson-slice | 8.1 KB |
| picojson-stream | 9.0 KB |
picojson’s code size is currently slightly larger.
Stack usage follows the expected patterns: serde recurses and with more nested documents consumes more stack. picojson is designed to use constant allocation for its configured max doc depth.