Added encoder sizes

This commit is contained in:
Benoit Blanchon
2014-07-05 12:53:34 +02:00
parent 65d03c9001
commit 0efe8bc74a

View File

@ -5,9 +5,9 @@ Arduino JSON library
It's design to be very lightweight, works without any allocation on the heap (no malloc).
It has been written with Arduino in mind, but it isn't linked to Arduino libraries so you can use this library on any other C++ project (in fact it's been written with Visual Studio ;-)
It has been written with Arduino in mind, but it isn't linked to Arduino libraries so you can use this library in any other C++ project.
# Features:
# Features
* JSON decoding: [more details here](/JsonParser/)
* JSON encoding: [more details here](/JsonGenerator/)
@ -16,16 +16,23 @@ It has been written with Arduino in mind, but it isn't linked to Arduino librari
* Small footprint
* MIT License
# Feature comparisons
# Feature comparison
| Library | Memory allocation | Nested objects | Encoding | Code size |
| ------------ | ----------------- | -------------- | -------- | --------- |
| Arduino JSON | static | yes | yes | 2.7 kB |
| [json-arduino v1.5]( https://github.com/not404/json-arduino) | dynamic | no | no | 3.4 kB (+28%) |
| [aJson v1.0](https://github.com/interactive-matter/aJson) | dynamic | yes | yes | 5.2 kB (+94%) |
| Library | Memory allocation | Nested objects | Encoding | Parser size | Encoder size |
| ------------ | ----------------- | -------------- | -------- | ----------- | ------------ |
| Arduino JSON | static | yes | yes | 2616 Bytes | 896 bytes |
| json-arduino | dynamic | no | no | 3348 (+28%) | N/A |
| aJson | dynamic | yes | yes | 5088 (+94%) | 4678 (+419%) |
Code size was measured with a program parsing `{"sensor":"outdoor","value":25.6}`.
For each library, I wrote a program that extracts a string and a float. I subtracted the size of a program doing the same without any JSON parsing involved. The target platform was an Arduino Duemilanove.
Parser size was measured with a program parsing `{"sensor":"outdoor","value":25.6}`.
For each library, I wrote a program that extracts a string and a float. I subtracted the size of a program doing the same without any JSON parsing involved. [Source files are here](https://gist.github.com/bblanchon/e8ba914a7109f3642c0f).
Encoder size was measured with a program generating `{"sensor":"outdoor","value":25.6}`.
[Source files are here](https://gist.github.com/bblanchon/60224e9dcfeab4ddc7e9).
In each case the target platform was an Arduino Duemilanove and Arduino IDE 1.0.5 was used.
Links: [json-arduino](https://github.com/not404/json-arduino), [aJson](https://github.com/interactive-matter/aJson)
# Testimonials