bson vs msgpack vs json deserialize perf test (v9)

Revision 9 of this benchmark created by Robert Plummer on


Preparation HTML

<script src="https://rawgithub.com/msgpack/msgpack-javascript/master/msgpack.js"></script>
<script src="https://rawgithub.com/mongodb/js-bson/master/browser_build/bson.js"></script>

Setup

var obj = {"alternative_titles":{"PT":"Mestres da Ilusão","DE":"Die Unfassbaren Now You See Me","HK":"非常盜","BR":"Truque De Mestre","CO":"Los ilusionistas: Nada es lo que parece","FR":"Insaisissables","ES":"Ahora me ves...","CL":"Los ilusionistas: Nada es lo que parece","TW":"出神入化","RU":"Иллюзия обмана","CN":"惊天魔盗团","HU":"Szemfényvesztők"},"awards":"1 win & 3 nominations.","backdrops":["/9wbXqcx6rHhoZ9Esp03C7amQzom.jpg","/127rBJibwnrPTWivH1cpSFvRyno.jpg","/n5dcnBJDMA2MmwndD7A3NcAYr5S.jpg","/l2zCMP4beAmTjm8v0cjocDqGHHf.jpg","/ch8HArX7ts3Stn3mDrohfZepqyh.jpg","/mYZRqRctkIyp7YORqrxc56hFa5p.jpg","/ct8MIVczuSR4stU7S11upAJVz6O.jpg","/zpR1bfYU6vv2XeByWaoFCFZ6mBO.jpg","/tOAgdlr0J8MBWNkMMKHlmEHEaz.jpg","/lq5nItfTLUfhwFJZIlB0xwEnzMR.jpg"],"budget":75000000,"cast":["Jesse Eisenberg","Mark Ruffalo","Woody Harrelson","Isla Fisher"],"categories":["2013 films","2010s crime thriller films","American crime thriller films","French crime thriller films","English-language films","Fiction with unreliable narrators","Films about magic and magicians","Films directed by Louis Leterrier","Films set in the Las Vegas Valley","Films set in New Orleans, Louisiana","Films set in New York City","Films set in Paris","Films set in Queens, New York","Films shot in the Las Vegas Valley","Films shot in Paris","Heist films","Summit Entertainment films","Films about revenge"],"certification":"","country":"France, USA","credits_cast":[{"character":"J. Daniel Atlas","name":"Jesse Eisenberg","profile_path":"/c01G88eCpiLLmT4RIWGkr7nm31o.jpg","id":44735},{"character":"Dylan Rhodes","name":"Mark Ruffalo","profile_path":"/isQ747u0MU8U9gdsNlPngjABclH.jpg","id":103},{"character":"Merritt McKinney","name":"Woody Harrelson","profile_path":"/ivfalpnvELPaSILqP6K6rabXfsU.jpg","id":57755},{"character":"Henley Reeves","name":"Isla Fisher","profile_path":"/f2gbyJ7fWON7w4hMAcUU5Y8uoER.jpg","id":52848},{"character":"Jack Wilder","name":"Dave Franco","profile_path":"/sWsW3mFSJzfbMUf43R0J8tY8BeW.jpg","id":54697},{"character":"Alma Dray","name":"Mélanie Laurent","profile_path":"/n10Yr6LtckIcgw3EdPxkVjwkBYS.jpg","id":19119},{"character":"Thaddeus Bradley","name":"Morgan Freeman","profile_path":"/oGJQhOpT8S1M56tvSsbEBePV5O1.jpg","id":192},{"character":"Arthur Tressler","name":"Michael Caine","profile_path":"/vvj0JMSFpOajXCE46Hy4dyqSP2U.jpg","id":3895},{"character":"Agent Fuller","name":"Michael Kelly","profile_path":"/iivECyPFmK7SeT3iBtmOgz3n3M7.jpg","id":50217},{"character":"Evans","name":"Common","profile_path":"/egsBjXzQiGpAPe5s66XqOHMF0SV.jpg","id":4238},{"character":"Cowan","name":"David Warshofsky","profile_path":"/alPG9509uMDaTmzsxzz8Rz1ZMZf.jpg","id":37204},{"character":"Etienne Forcier","name":"José Garcia","profile_path":"/9OlwiWiBgxCGd85HcxuljDXZn3U.jpg","id":24895},{"character":"Hermia","name":"Jessica Lindsey","profile_path":"/1HtWGanA2Duom5aWKA1P19Y5SOQ.jpg","id":1178995},{"character":"Jasmine Trassler","name":"Caitriona Balfe","profile_path":"/pAVH9RTZyA6i1SDpjDHN5lmscHt.jpg","id":147056},{"character":"Atlas Groupie","name":"Stephanie Honoré","profile_path":"/nSMMEmAcTy9D9XK9recqarOrBg2.jpg","id":94427},{"character":"Lionel Shrike","name":"Elias Koteas","profile_path":"/11pXICpcdGJxGG8H8g1Bk3qc66V.jpg","id":13550}],"credits_crew":[{"department":"Directing","job":"Director","name":"Louis Leterrier","profile_path":"/54rsjgcmdZj2wymmKy3FPRgkrie.jpg","id":18865},{"department":"Writing","job":"Screenplay","name":"Edward Ricourt","profile_path":null,"id":1105707},{"department":"Writing","job":"Screenplay","name":"Ed Solomon","profile_path":null,"id":9612},{"department":"Writing","job":"Screenplay","name":"Boaz Yakin","profile_path":"/4NL3F6iwVlwdWvBKue5H8OpZrp2.jpg","id":52358},{"department":"Writing","job":"Story","name":"Boaz Yakin","profile_path":"/4NL3F6iwVlwdWvBKue5H8OpZrp2.jpg","id":52358},{"department":"Writing","job":"Story","name":"Edward Ricourt","profile_path":null,"id":1105707},{"department":"Sound","job":"Original Music Composer","name":"Brian Tyler","profile_path":"/22QWiNJj03amY6GT1QPUs7dbdcB.jpg","id":6041},{"department":"Camera","job":"Director of Photography","name":"Mitchell Amundsen","profile_path":null,"id":24310},{"department":"Camera","job":"Director of Photography","name":"Larry Fong","profile_path":null,"id":17284},{"department":"Editing","job":"Editor","name":"Robert Leighton","profile_path":null,"id":3032},{"department":"Editing","job":"Editor","name":"Vincent Tabaillon","profile_path":null,"id":56231},{"department":"Production","job":"Producer","name":"Bobby Cohen","profile_path":null,"id":135},{"department":"Production","job":"Producer","name":"Alex Kurtzman","profile_path":"/5cO0ug7TtRqzbYU4ukKzUzfuUk.jpg","id":15345},{"department":"Production","job":"Producer","name":"Roberto Orci","profile_path":"/5SNw3lnRD6UQJFy52IH3MdFGIrs.jpg","id":15346},{"department":"Production","job":"Executive Producer","name":"Michael Schaefer","profile_path":null,"id":22498},{"department":"Production","job":"Executive Producer","name":"Stan Wlodkowski","profile_path":null,"id":51689},{"department":"Production","job":"Executive Producer","name":"Boaz Yakin","profile_path":"/4NL3F6iwVlwdWvBKue5H8OpZrp2.jpg","id":52358},{"department":"Production","job":"Casting","name":"Carmen Cuba","profile_path":null,"id":51922},{"department":"Art","job":"Art Direction","name":"Scott Plauche","profile_path":null,"id":960282},{"department":"Art","job":"Art Direction","name":"Thomas Valentine","profile_path":null,"id":9639},{"department":"Art","job":"Set Decoration","name":"Fontaine Beauchamp Hebb","profile_path":null,"id":60385},{"department":"Costume & Make-Up","job":"Costume Design","name":"Jenny Eagan","profile_path":null,"id":1017240}],"description":"An FBI agent and an Interpol detective track a team of illusionists who pull off bank heists during their performances and reward their audiences with the money.","director":["Louis Leterrier"],"dvdRelease":"2013-09-02T21:00:00.000Z","english_titles":["Now You See Me (Extended)"],"fanart":{"moviedisc":[{"url":"http://assets.fanart.tv/fanart/movies/75656/moviedisc/now-you-see-me-5219c34a6e75b.png","lang":"en","disc":"1","disc_type":"bluray"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviedisc/now-you-see-me-52b763e245073.png","lang":"en","disc":"1","disc_type":"bluray"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviedisc/now-you-see-me-52b76513c2eac.png","lang":"fr","disc":"1","disc_type":"bluray"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviedisc/now-you-see-me-52b766184d6a3.png","lang":"de","disc":"1","disc_type":"bluray"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviedisc/now-you-see-me-52b76f16c903c.png","lang":"hu","disc":"1","disc_type":"bluray"}],"hdmovieclearart":[{"url":"http://assets.fanart.tv/fanart/movies/75656/hdmovieclearart/now-you-see-me-518c2bb259332.png","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/hdmovieclearart/now-you-see-me-51a5c69c94dcb.png","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/hdmovieclearart/now-you-see-me-5139003f22bcb.png","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/hdmovieclearart/now-you-see-me-518c2bb25896c.png","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/hdmovieclearart/now-you-see-me-518c2bc790a51.png","lang":"de"},{"url":"http://assets.fanart.tv/fanart/movies/75656/hdmovieclearart/now-you-see-me-518c2bc791549.png","lang":"de"}],"hdmovielogo":[{"url":"http://assets.fanart.tv/fanart/movies/75656/hdmovielogo/now-you-see-me-518c2b4f51090.png","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/hdmovielogo/now-you-see-me-5224721470734.png","lang":"fr"},{"url":"http://assets.fanart.tv/fanart/movies/75656/hdmovielogo/now-you-see-me-518ff8b35660f.png","lang":"hu"},{"url":"http://assets.fanart.tv/fanart/movies/75656/hdmovielogo/now-you-see-me-521798c8eb12b.png","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/hdmovielogo/now-you-see-me-518c2b6316abb.png","lang":"de"},{"url":"http://assets.fanart.tv/fanart/movies/75656/hdmovielogo/now-you-see-me-5313034ed2bed.png","lang":"es"}],"movieposter":[{"url":"http://assets.fanart.tv/fanart/movies/75656/movieposter/now-you-see-me-521970c1f0e80.jpg","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/movieposter/now-you-see-me-525a9ef32b4f4.jpg","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/movieposter/now-you-see-me-521970f9b8b95.jpg","lang":"de"},{"url":"http://assets.fanart.tv/fanart/movies/75656/movieposter/now-you-see-me-5219714a8ca10.jpg","lang":"hu"},{"url":"http://assets.fanart.tv/fanart/movies/75656/movieposter/now-you-see-me-525a9ef32ab0b.jpg","lang":"00"},{"url":"http://assets.fanart.tv/fanart/movies/75656/movieposter/now-you-see-me-52b8416b9d9ee.jpg","lang":"fr"}],"moviebackground":[{"url":"http://assets.fanart.tv/fanart/movies/75656/moviebackground/now-you-see-me-518c2be987b49.jpg","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviebackground/now-you-see-me-52151a8bc9f81.jpg","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviebackground/now-you-see-me-521737c220e15.jpg","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviebackground/now-you-see-me-518c2be986ffb.jpg","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviebackground/now-you-see-me-518c2be9885bd.jpg","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviebackground/now-you-see-me-518c2be989033.jpg","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviebackground/now-you-see-me-518c2be98994a.jpg","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviebackground/now-you-see-me-52278ec2d7578.jpg","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviebackground/now-you-see-me-525aa4f7388a0.jpg","lang":"en"}],"moviebanner":[{"url":"http://assets.fanart.tv/fanart/movies/75656/moviebanner/now-you-see-me-52151aa68b28e.jpg","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviebanner/now-you-see-me-52b8414cd043a.jpg","lang":"fr"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviebanner/now-you-see-me-52151a9ba0fe1.jpg","lang":"de"}],"moviethumb":[{"url":"http://assets.fanart.tv/fanart/movies/75656/moviethumb/now-you-see-me-52151ac894a5b.jpg","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviethumb/now-you-see-me-518c2c0aea4ff.jpg","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviethumb/now-you-see-me-518c2c0aeafd4.jpg","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviethumb/now-you-see-me-518c2c0b17a3e.jpg","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviethumb/now-you-see-me-518c2c0b18231.jpg","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviethumb/now-you-see-me-518c2c0b189ee.jpg","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviethumb/now-you-see-me-518c2c28846d6.jpg","lang":"de"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviethumb/now-you-see-me-518c2c2884fbe.jpg","lang":"de"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviethumb/now-you-see-me-518c2c2885573.jpg","lang":"de"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviethumb/now-you-see-me-518c2c2885cd6.jpg","lang":"de"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviethumb/now-you-see-me-518c2c288648f.jpg","lang":"de"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviethumb/now-you-see-me-518e19db0687d.jpg","lang":"hu"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviethumb/now-you-see-me-52151aba2e359.jpg","lang":"de"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviethumb/now-you-see-me-526ff16032fef.jpg","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/moviethumb/now-you-see-me-52b8411ea8206.jpg","lang":"fr"}],"movielogo":[{"url":"http://assets.fanart.tv/fanart/movies/75656/movielogo/now-you-see-me-518c2b7a201f3.png","lang":"en"},{"url":"http://assets.fanart.tv/fanart/movies/75656/movielogo/now-you-see-me-518c2b8da3c63.png","lang":"en"}]},"genre":["Crime","Mystery","Thriller"],"imdbRating":"7.3","imdbVotes":338639,"imdb_id":"tt1670345","keywords":["paris","bank","secret","fbi","vault","magic","new orleans","investigation","heist","conspiracy","money","escape","new york city","explosion","magician","las vegas"],"language":["English","French"],"metacritic":null,"moviedb_id":75656,"moviedb_popularity":"2.59331177752684","moviedb_similar":[101299,72559,51497,192102,14869,13183,820,152599,68728,6637,11657,507,76640,4349,433,9913,10367,846,8090,38842],"name":"Now You See Me","popularity":1388,"poster":"http://ia.media-imdb.com/images/M/MV5BMTY0NDY3MDMxN15BMl5BanBnXkFtZTcwOTM5NzMzOQ@@._V1_SX300.jpg","production_companies":[{"name":"Summit Entertainment","id":491},{"name":"K/O Paper Products","id":7296},{"name":"SOIXAN7E QUIN5E","id":23271},{"name":"See Me Louisiana","id":23272}],"production_countries":["FR","US"],"release_date":"2013-05-31T00:00:00.000Z","released":"2013-05-30T21:00:00.000Z","revenue":117698894,"runtime":"115 min","seeders":1388,"spoken_languages":["en"],"tagline":"4 amazing magicians. 3 impossible heists. 1 billion dollars. This is no illusion.","trailers":[{"source":"VXuQDNdbd5E","type":"Trailer"}],"type":"movie","website":"http://nowyouseememovie.com/","writer":["Ed Solomon (screenplay)","Boaz Yakin (screenplay)","Edward Ricourt (screenplay)","Boaz Yakin (story)","Edward Ricourt (story)"],"year":"2013","_id":"06JmZA6IW3QzWaZz","_mtime":{"$$date":1419353054912}}
    ;
    
    var BSON = bson().BSON;
    var sBSON = BSON.serialize(obj);
    var sJSON = JSON.stringify(obj);
    var sMsgpack = msgpack.pack(obj);

Test runner

Ready to run.

Testing in
TestOps/sec
bson string to object
BSON.deserialize(sBSON);
ready
json string to object
JSON.parse(sJSON);
ready
msgpack string to object
console.log(msgpack.unpack(sMsgpack ));
ready
bson object to string
sBSON = BSON.serialize(obj);
ready
json object to string
JSON.stringify(obj);
ready
msgpack object to string
msgpack.pack(obj);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.