Performant Entity Serialization: BSON vs MessagePack (vs JSON)

后端 未结 6 1461
南方客
南方客 2020-12-04 04:57

Recently I\'ve found MessagePack, an alternative binary serialization format to Google\'s Protocol Buffers and JSON which also out

6条回答
  •  眼角桃花
    2020-12-04 05:38

    Quick test shows minified JSON is deserialized faster than binary MessagePack. In the tests Article.json is 550kb minified JSON, Article.mpack is 420kb MP-version of it. May be an implementation issue of course.

    MessagePack:

    //test_mp.js
    var msg = require('msgpack');
    var fs = require('fs');
    
    var article = fs.readFileSync('Article.mpack');
    
    for (var i = 0; i < 10000; i++) {
        msg.unpack(article);    
    }
    

    JSON:

    // test_json.js
    var msg = require('msgpack');
    var fs = require('fs');
    
    var article = fs.readFileSync('Article.json', 'utf-8');
    
    for (var i = 0; i < 10000; i++) {
        JSON.parse(article);
    }
    

    So times are:

    Anarki:Downloads oleksii$ time node test_mp.js 
    
    real    2m45.042s
    user    2m44.662s
    sys     0m2.034s
    
    Anarki:Downloads oleksii$ time node test_json.js 
    
    real    2m15.497s
    user    2m15.458s
    sys     0m0.824s
    

    So space is saved, but faster? No.

    Tested versions:

    Anarki:Downloads oleksii$ node --version
    v0.8.12
    Anarki:Downloads oleksii$ npm list msgpack
    /Users/oleksii
    └── msgpack@0.1.7  
    

提交回复
热议问题