...
The cited article also shows benchmarks from 2017 in which Jackson parser was out performing GSON in the large file category. We can surmise that there is a constant battle between these objectMappers and Jackson may begin out performing GSON again in the future. For example this article from 2019 with new benchmarks states that the difference between the different mappers is negligible, with Jackson mapper having a slight lead with larger files.
Test Results
Parser | Operation | Execution time in microseconds | Issues | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
40 characters | Read 40 characters | Write 40 characters | Read 100 characters | Write100 characters | Read1000 characters | Write 1000 characters | Issues | |||||||||||
Jackson | Read | Jackson7.488 microseconds | 0.296 microseconds | 10.984 microseconds | 0.567 microseconds | 50.49 microseconds | 5.12 microseconds | GSON | 0.509 microseconds | 0.531 microseconds | 0.818 microseconds | 1.332 microseconds | 8.212 microseconds | 14.884 microseconds11 | 50 | |||
GSON | Read | <1 | <1 | 8 | GSON parses all numerical values to Doubles and as such it unable to dynamically allocate the object type that it is parsing | |||||||||||||
Jackson | Write | <1 | <1 | 5 | ||||||||||||||
GSON | Write | <1 | 1 | 15 |
Parser | Pros | Cons |
---|---|---|
Jackson | Consistent conversion of numerics | Slower Read |
GSON | Faster Reads | Converts numerics to Doubles |
...
Current Team Consensus is to use the Jackson Parser mainly due to the benefit of being able to parse numerical objects to the correct type and because the magnitude difference between the two parsers is in microseconds.
View file | ||||
---|---|---|---|---|
|
CPS-NCMP
- CpsDataPersistenceServiceImpl.java is using two mapper objects, GSON and Jackson, should be just Jackson
- NetworkCmProxyInventoryController.java is using the Jackson mapper where the GSON could be used instead
- NetworkCmProxyDataServiceImpl.java is using the Jackson mapper where the GSON could be used instead
Temporal
...
Independent Testing Output
...