SlideShare une entreprise Scribd logo
JSON parsers comparison.
Android SDK, GSON, Jackson.
Principles of the libraries operation
● JSON input
● DOM (Document object Model) or SAX (Simple API for XML)
● Mapper-classes formation:
○ Android SDK - writing parser manually, using JSONObject and JSONArray
○ Gson и Jackson - using Reflection mechanism
Requirements:
● Gadget - Nexus 7 (2013, 2 Gb Ram)
● Speed - 14 JSON from 100b to 10Mb, 1000 iterations for each parser
● Memory - 4 JSON from 5kb to 5Mb, 100 iterations for each parser
● JSON example:
{
"title": "Title",
"id": 1,
"items": [
{
"name": "name_0",
"id": 0
}
],
"subobject": {
"id": 1,
"subitems": [
{
"name": "name_0",
"id": 0
}
]
}
}
GSON. Results. Speed
Size , bytes 100 500 1024 5120 10240 51200 102400 256000 512000 768000 1048576 2097152 5242880 10485760
Time, ms 8,5 9,1 9,8 15,2 22,6 85,0 159,0 380,1 761,8 1140,4 1560,0 3187,6 8298,4 18018,4
σ, ms 1,2 1,1 1,2 1,5 1,8 3,3 4,3 5,9 4,2 5,0 5,2 7,8 8,7 22,2
3σ/Time , % 41,5 36,8 37,2 28,8 24,0 11,6 8,2 4,6 1,6 1,3 1,0 0,7 0,3 0,4
Jackson. Results. Speed
Size , bytes 100 500 1024 5120 10240 51200 102400 256000 512000 768000 1048576 2097152 5242880 10485760
Time, ms 133,7 134,4 134,8 140,4 146,4 205,6 277,1 496,8 853,9 1199,4 1574,4 3028,8 7524,5 15296,2
σ, ms 4,2 4,2 4,2 4,3 4,3 4,7 5,0 6,2 6,2 4,9 5,7 6,1 9,1 10,2
3σ/t , % 9,5 9,4 9,4 9,1 8,8 6,8 5,4 3,7 2,2 1,2 1,1 0,6 0,4 0,2
Android SDK. Results. Speed
Size , bytes 100 500 1024 5120 10240 51200 102400 256000 512000 768000 1048576 2097152 5242880 10485760
Time, ms 0,3 1,1 1,8 8,0 15,6 77,9 160,0 416,4 891,0 1337,3 1847,4 3901,4 12456,1 29924,1
σ, ms 0,6 0,6 0,7 1,2 1,7 3,5 4,9 6,3 6,6 5,7 7,4 9,2 12,6 17,4
3σ/t , % 662,7 156,5 120,0 44,8 31,9 13,6 9,1 4,5 2,2 1,3 1,2 0,7 0,3 0,2
Comparison
Memory usage
Size , bytes 5120 51200 512000 5242880
Memory usage Native, bytes 107456 890905 6720267 62498840
Memory usage JACKSON , bytes 1649111 1818337 4885290 16920928
Memory usage GSON, bytes 166980 748693 6654454 22172398
Speed conclusion:
● When parsing small-size JSON, it is better to use Android SDK
● When parsing big-size JSON, Jackson is the best choice
● GSON is optimal choice
Thanks for attention!

Contenu connexe

En vedette

Selling email marketing
Selling email marketingSelling email marketing
Selling email marketing
Artjoker Digital
 
Blogs: how to write cool articles
Blogs: how to write cool articlesBlogs: how to write cool articles
Blogs: how to write cool articles
Artjoker Digital
 
Caching. api. http 1.1
Caching. api. http 1.1Caching. api. http 1.1
Caching. api. http 1.1
Artjoker Digital
 
M.Belfiore-Grassi alimentari e malattie neurodegenerative
M.Belfiore-Grassi alimentari e malattie neurodegenerativeM.Belfiore-Grassi alimentari e malattie neurodegenerative
M.Belfiore-Grassi alimentari e malattie neurodegenerativeMarcello Belfiore
 
MyPopcoins Corporate Presentation
MyPopcoins Corporate PresentationMyPopcoins Corporate Presentation
MyPopcoins Corporate Presentation
My PopCoins App (1k Connections)
 
Json vs Gson vs Jackson
Json vs Gson vs JacksonJson vs Gson vs Jackson
Json vs Gson vs Jackson
Vinaykumar Hebballi
 
Retro vs volley (2)
Retro vs volley (2)Retro vs volley (2)
Retro vs volley (2)
Artjoker Digital
 
Efficient development theory
Efficient development theoryEfficient development theory
Efficient development theory
Artjoker Digital
 
Content marketing.ppt
Content marketing.pptContent marketing.ppt
Content marketing.ppt
Artjoker Digital
 

En vedette (9)

Selling email marketing
Selling email marketingSelling email marketing
Selling email marketing
 
Blogs: how to write cool articles
Blogs: how to write cool articlesBlogs: how to write cool articles
Blogs: how to write cool articles
 
Caching. api. http 1.1
Caching. api. http 1.1Caching. api. http 1.1
Caching. api. http 1.1
 
M.Belfiore-Grassi alimentari e malattie neurodegenerative
M.Belfiore-Grassi alimentari e malattie neurodegenerativeM.Belfiore-Grassi alimentari e malattie neurodegenerative
M.Belfiore-Grassi alimentari e malattie neurodegenerative
 
MyPopcoins Corporate Presentation
MyPopcoins Corporate PresentationMyPopcoins Corporate Presentation
MyPopcoins Corporate Presentation
 
Json vs Gson vs Jackson
Json vs Gson vs JacksonJson vs Gson vs Jackson
Json vs Gson vs Jackson
 
Retro vs volley (2)
Retro vs volley (2)Retro vs volley (2)
Retro vs volley (2)
 
Efficient development theory
Efficient development theoryEfficient development theory
Efficient development theory
 
Content marketing.ppt
Content marketing.pptContent marketing.ppt
Content marketing.ppt
 

Similaire à Json parsers comparison

Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !
Microsoft Technet France
 
Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !
davrous
 
Nantes JUG - Les News - 2013-10-10
Nantes JUG - Les News - 2013-10-10Nantes JUG - Les News - 2013-10-10
Nantes JUG - Les News - 2013-10-10Sébastien Prunier
 
BBL - Monitoring - kyriba
BBL - Monitoring - kyribaBBL - Monitoring - kyriba
BBL - Monitoring - kyriba
Olivier BAZOUD
 
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture WebCours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Adyax
 
Créer des applications Java avec MongoDB
Créer des applications Java avec MongoDBCréer des applications Java avec MongoDB
Créer des applications Java avec MongoDB
MongoDB
 
Développer pour tous les navigateurs
Développer pour tous les navigateursDévelopper pour tous les navigateurs
Développer pour tous les navigateurs
Microsoft
 
Retours Devoxx France 2016
Retours Devoxx France 2016Retours Devoxx France 2016
Retours Devoxx France 2016
Antoine Rey
 
HTML5, Spring, NoSQL et mobilité
HTML5, Spring, NoSQL et mobilitéHTML5, Spring, NoSQL et mobilité
HTML5, Spring, NoSQL et mobilité
Julien Dubois
 
JugSummerCamp 2013 - Un backend NoSQL pour Geektic avec MongoDB
JugSummerCamp 2013 - Un backend NoSQL pour Geektic avec MongoDBJugSummerCamp 2013 - Un backend NoSQL pour Geektic avec MongoDB
JugSummerCamp 2013 - Un backend NoSQL pour Geektic avec MongoDB
Sébastien Prunier
 
L'univers Android
L'univers AndroidL'univers Android
L'univers Android
Chiheb Ouaghlani
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans Drupal
Adyax
 
Réussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDBRéussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDB
MongoDB
 
Devoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le CloudDevoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le Cloud
Tugdual Grall
 
Morning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slides
Oxalide
 
Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performance
Ludovic Piot
 
04 big data fournisseurs
04 big data fournisseurs04 big data fournisseurs
04 big data fournisseurs
Patrick Bury
 
Nouveautés html5 et css3 dans internet explorer 10
Nouveautés html5 et css3 dans internet explorer 10Nouveautés html5 et css3 dans internet explorer 10
Nouveautés html5 et css3 dans internet explorer 10
davrous
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?
GreenIvory
 

Similaire à Json parsers comparison (20)

Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !
 
Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !
 
Nantes JUG - Les News - 2013-10-10
Nantes JUG - Les News - 2013-10-10Nantes JUG - Les News - 2013-10-10
Nantes JUG - Les News - 2013-10-10
 
BBL - Monitoring - kyriba
BBL - Monitoring - kyribaBBL - Monitoring - kyriba
BBL - Monitoring - kyriba
 
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture WebCours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
 
Créer des applications Java avec MongoDB
Créer des applications Java avec MongoDBCréer des applications Java avec MongoDB
Créer des applications Java avec MongoDB
 
Développer pour tous les navigateurs
Développer pour tous les navigateursDévelopper pour tous les navigateurs
Développer pour tous les navigateurs
 
Retours Devoxx France 2016
Retours Devoxx France 2016Retours Devoxx France 2016
Retours Devoxx France 2016
 
Hello mongo
Hello mongoHello mongo
Hello mongo
 
HTML5, Spring, NoSQL et mobilité
HTML5, Spring, NoSQL et mobilitéHTML5, Spring, NoSQL et mobilité
HTML5, Spring, NoSQL et mobilité
 
JugSummerCamp 2013 - Un backend NoSQL pour Geektic avec MongoDB
JugSummerCamp 2013 - Un backend NoSQL pour Geektic avec MongoDBJugSummerCamp 2013 - Un backend NoSQL pour Geektic avec MongoDB
JugSummerCamp 2013 - Un backend NoSQL pour Geektic avec MongoDB
 
L'univers Android
L'univers AndroidL'univers Android
L'univers Android
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans Drupal
 
Réussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDBRéussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDB
 
Devoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le CloudDevoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le Cloud
 
Morning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slidesMorning tech #2 - Démarche performance slides
Morning tech #2 - Démarche performance slides
 
Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performance
 
04 big data fournisseurs
04 big data fournisseurs04 big data fournisseurs
04 big data fournisseurs
 
Nouveautés html5 et css3 dans internet explorer 10
Nouveautés html5 et css3 dans internet explorer 10Nouveautés html5 et css3 dans internet explorer 10
Nouveautés html5 et css3 dans internet explorer 10
 
Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?Flex, une techno RIA incontournable pour les futures app web ?
Flex, une techno RIA incontournable pour les futures app web ?
 

Dernier

Comprendre le vote aux élections européennes du 9 juin 2024
Comprendre le vote aux élections européennes du 9 juin 2024Comprendre le vote aux élections européennes du 9 juin 2024
Comprendre le vote aux élections européennes du 9 juin 2024
contact Elabe
 
Actualisation estimation élections européennes 2024
Actualisation estimation élections européennes 2024Actualisation estimation élections européennes 2024
Actualisation estimation élections européennes 2024
contact Elabe
 
Deuxième actualisation estimation élections européennes 2024
Deuxième actualisation estimation élections européennes 2024Deuxième actualisation estimation élections européennes 2024
Deuxième actualisation estimation élections européennes 2024
contact Elabe
 
Webinaire_les aides aux investissements.pptx
Webinaire_les aides aux investissements.pptxWebinaire_les aides aux investissements.pptx
Webinaire_les aides aux investissements.pptx
Institut de l'Elevage - Idele
 
Productivité et politique industrielles: deux défis à relever conjointement
Productivité et politique industrielles: deux défis à relever conjointementProductivité et politique industrielles: deux défis à relever conjointement
Productivité et politique industrielles: deux défis à relever conjointement
La Fabrique de l'industrie
 
Webinaire Qui sont les jeunes installés avec un bac +5 ?
Webinaire Qui sont les jeunes installés avec un bac +5 ?Webinaire Qui sont les jeunes installés avec un bac +5 ?
Webinaire Qui sont les jeunes installés avec un bac +5 ?
Institut de l'Elevage - Idele
 
Estimation élections européennes 2024 ELABE
Estimation élections européennes 2024 ELABEEstimation élections européennes 2024 ELABE
Estimation élections européennes 2024 ELABE
contact Elabe
 
Estimations ELABE BFMTV ABSTENTION élections européennes 2024
Estimations ELABE BFMTV ABSTENTION élections européennes 2024Estimations ELABE BFMTV ABSTENTION élections européennes 2024
Estimations ELABE BFMTV ABSTENTION élections européennes 2024
contact Elabe
 
Barometre_de_l_Economie_S1_2024_-_BAT__1_.pdf
Barometre_de_l_Economie_S1_2024_-_BAT__1_.pdfBarometre_de_l_Economie_S1_2024_-_BAT__1_.pdf
Barometre_de_l_Economie_S1_2024_-_BAT__1_.pdf
Paperjam_redaction
 
Les Français et les élections européennes - 9ème vague
Les Français et les élections européennes - 9ème vagueLes Français et les élections européennes - 9ème vague
Les Français et les élections européennes - 9ème vague
contact Elabe
 

Dernier (10)

Comprendre le vote aux élections européennes du 9 juin 2024
Comprendre le vote aux élections européennes du 9 juin 2024Comprendre le vote aux élections européennes du 9 juin 2024
Comprendre le vote aux élections européennes du 9 juin 2024
 
Actualisation estimation élections européennes 2024
Actualisation estimation élections européennes 2024Actualisation estimation élections européennes 2024
Actualisation estimation élections européennes 2024
 
Deuxième actualisation estimation élections européennes 2024
Deuxième actualisation estimation élections européennes 2024Deuxième actualisation estimation élections européennes 2024
Deuxième actualisation estimation élections européennes 2024
 
Webinaire_les aides aux investissements.pptx
Webinaire_les aides aux investissements.pptxWebinaire_les aides aux investissements.pptx
Webinaire_les aides aux investissements.pptx
 
Productivité et politique industrielles: deux défis à relever conjointement
Productivité et politique industrielles: deux défis à relever conjointementProductivité et politique industrielles: deux défis à relever conjointement
Productivité et politique industrielles: deux défis à relever conjointement
 
Webinaire Qui sont les jeunes installés avec un bac +5 ?
Webinaire Qui sont les jeunes installés avec un bac +5 ?Webinaire Qui sont les jeunes installés avec un bac +5 ?
Webinaire Qui sont les jeunes installés avec un bac +5 ?
 
Estimation élections européennes 2024 ELABE
Estimation élections européennes 2024 ELABEEstimation élections européennes 2024 ELABE
Estimation élections européennes 2024 ELABE
 
Estimations ELABE BFMTV ABSTENTION élections européennes 2024
Estimations ELABE BFMTV ABSTENTION élections européennes 2024Estimations ELABE BFMTV ABSTENTION élections européennes 2024
Estimations ELABE BFMTV ABSTENTION élections européennes 2024
 
Barometre_de_l_Economie_S1_2024_-_BAT__1_.pdf
Barometre_de_l_Economie_S1_2024_-_BAT__1_.pdfBarometre_de_l_Economie_S1_2024_-_BAT__1_.pdf
Barometre_de_l_Economie_S1_2024_-_BAT__1_.pdf
 
Les Français et les élections européennes - 9ème vague
Les Français et les élections européennes - 9ème vagueLes Français et les élections européennes - 9ème vague
Les Français et les élections européennes - 9ème vague
 

Json parsers comparison

  • 1. JSON parsers comparison. Android SDK, GSON, Jackson.
  • 2. Principles of the libraries operation ● JSON input ● DOM (Document object Model) or SAX (Simple API for XML) ● Mapper-classes formation: ○ Android SDK - writing parser manually, using JSONObject and JSONArray ○ Gson и Jackson - using Reflection mechanism
  • 3. Requirements: ● Gadget - Nexus 7 (2013, 2 Gb Ram) ● Speed - 14 JSON from 100b to 10Mb, 1000 iterations for each parser ● Memory - 4 JSON from 5kb to 5Mb, 100 iterations for each parser ● JSON example: { "title": "Title", "id": 1, "items": [ { "name": "name_0", "id": 0 } ], "subobject": { "id": 1, "subitems": [ { "name": "name_0", "id": 0 } ] } }
  • 4. GSON. Results. Speed Size , bytes 100 500 1024 5120 10240 51200 102400 256000 512000 768000 1048576 2097152 5242880 10485760 Time, ms 8,5 9,1 9,8 15,2 22,6 85,0 159,0 380,1 761,8 1140,4 1560,0 3187,6 8298,4 18018,4 σ, ms 1,2 1,1 1,2 1,5 1,8 3,3 4,3 5,9 4,2 5,0 5,2 7,8 8,7 22,2 3σ/Time , % 41,5 36,8 37,2 28,8 24,0 11,6 8,2 4,6 1,6 1,3 1,0 0,7 0,3 0,4
  • 5. Jackson. Results. Speed Size , bytes 100 500 1024 5120 10240 51200 102400 256000 512000 768000 1048576 2097152 5242880 10485760 Time, ms 133,7 134,4 134,8 140,4 146,4 205,6 277,1 496,8 853,9 1199,4 1574,4 3028,8 7524,5 15296,2 σ, ms 4,2 4,2 4,2 4,3 4,3 4,7 5,0 6,2 6,2 4,9 5,7 6,1 9,1 10,2 3σ/t , % 9,5 9,4 9,4 9,1 8,8 6,8 5,4 3,7 2,2 1,2 1,1 0,6 0,4 0,2
  • 6. Android SDK. Results. Speed Size , bytes 100 500 1024 5120 10240 51200 102400 256000 512000 768000 1048576 2097152 5242880 10485760 Time, ms 0,3 1,1 1,8 8,0 15,6 77,9 160,0 416,4 891,0 1337,3 1847,4 3901,4 12456,1 29924,1 σ, ms 0,6 0,6 0,7 1,2 1,7 3,5 4,9 6,3 6,6 5,7 7,4 9,2 12,6 17,4 3σ/t , % 662,7 156,5 120,0 44,8 31,9 13,6 9,1 4,5 2,2 1,3 1,2 0,7 0,3 0,2
  • 8. Memory usage Size , bytes 5120 51200 512000 5242880 Memory usage Native, bytes 107456 890905 6720267 62498840 Memory usage JACKSON , bytes 1649111 1818337 4885290 16920928 Memory usage GSON, bytes 166980 748693 6654454 22172398
  • 9. Speed conclusion: ● When parsing small-size JSON, it is better to use Android SDK ● When parsing big-size JSON, Jackson is the best choice ● GSON is optimal choice