Advertisement
Guest User

JSON vs Bicycle

a guest
Dec 6th, 2010
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. var generate = function (count) {
  3.     var objects = [];
  4.     while (count--) {
  5.         var obj = {};
  6.         for (var i in {n:1,e:1,u:1,r:1,s:1,f:1,a:1,d:1,y:1}) {
  7.             obj[i] = '!!' + Math.random() + '!!';
  8.         }
  9.         objects.push(obj);
  10.     }
  11.     return objects;
  12. };
  13.  
  14. var json = {
  15.     decode : function (text) {
  16.         return JSON.parse(text);
  17.     },
  18.     encode : function (object) {
  19.         return JSON.stringify(object);
  20.     }
  21. };
  22.  
  23. var plain = {
  24.     decode: function (text) {
  25.         var contacts = text.split("\\c");
  26.         for (var n = 0, len = contacts.length, contactSplit; n < len; n++) {
  27.  
  28.             contactSplit = contacts[n].split("\\a");
  29.  
  30.             contacts[n] = {};
  31.             contacts[n].n = contactSplit[0];
  32.             contacts[n].e = contactSplit[1];
  33.             contacts[n].u = contactSplit[2];
  34.             contacts[n].r = contactSplit[3];
  35.             contacts[n].s = contactSplit[4];
  36.             contacts[n].f = contactSplit[5];
  37.             contacts[n].a = contactSplit[6];
  38.             contacts[n].d = contactSplit[7];
  39.             contacts[n].y = contactSplit[8];
  40.         }
  41.         return contacts;
  42.     },
  43.     encode : function (object) {
  44.         var result = [];
  45.         for (var i = 0, l = object.length; i < l; i++) {
  46.             var c = object[i];
  47.             result.push([c.n,c.e,c.u,c.r,c.s,c.f,c.a,c.d,c.y].join('\\a'));
  48.         }
  49.         return result.join('\\c');
  50.     },
  51. };
  52.  
  53. console.log( json.decode( json.encode(generate(10))));
  54. console.log(plain.decode(plain.encode(generate(10))));
  55.  
  56. var test = {json : json, plain : plain};
  57. for (var i in test) {
  58.     var data = test[i].encode(generate(100));
  59.     console.time(i);
  60.     for (var count = 100; count--;) {
  61.         window['test-' + i] = test[i].decode(data);
  62.     }
  63.     console.timeEnd(i);
  64. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement