Bug:Fix file validation issue
[vnfsdk/refrepo.git] / vnfmarket / src / main / webapp / vnfmarket / node_modules / redis / benches / stress / speed / speed.js
1 var msgpack = require('node-msgpack');
2 var bison = require('bison');
3 var codec = {
4         JSON: {
5                 encode: JSON.stringify,
6                 decode: JSON.parse
7         },
8         msgpack: {
9                 encode: msgpack.pack,
10                 decode: msgpack.unpack
11         },
12         bison: bison
13 };
14
15 var obj, l;
16
17 var s = '0';
18 for (var i = 0; i < 12; ++i) s += s;
19
20 obj = {
21         foo: s,
22         arrrrrr: [{a:1,b:false,c:null,d:1.0}, 1111, 2222, 33333333],
23         rand: [],
24         a: s,
25         ccc: s,
26         b: s + s + s
27 };
28 for (i = 0; i < 100; ++i) obj.rand.push(Math.random());
29 forObj(obj);
30
31 obj = {
32         foo: s,
33         arrrrrr: [{a:1,b:false,c:null,d:1.0}, 1111, 2222, 33333333],
34         rand: []
35 };
36 for (i = 0; i < 100; ++i) obj.rand.push(Math.random());
37 forObj(obj);
38
39 obj = {
40         foo: s,
41         arrrrrr: [{a:1,b:false,c:null,d:1.0}, 1111, 2222, 33333333],
42         rand: []
43 };
44 forObj(obj);
45
46 obj = {
47         arrrrrr: [{a:1,b:false,c:null,d:1.0}, 1111, 2222, 33333333],
48         rand: []
49 };
50 forObj(obj);
51
52 function run(obj, codec) {
53         var t1 = Date.now();
54         var n = 10000;
55         for (var i = 0; i < n; ++i) {
56                 codec.decode(l = codec.encode(obj));
57         }
58         var t2 = Date.now();
59         //console.log('DONE', n*1000/(t2-t1), 'codecs/sec, length=', l.length);
60         return [n*1000/(t2-t1), l.length];
61 }
62
63 function series(obj, cname, n) {
64         var rate = 0;
65         var len = 0;
66         for (var i = 0; i < n; ++i) {
67                 var r = run(obj, codec[cname]);
68                 rate += r[0];
69                 len += r[1];
70         }
71         rate /= n;
72         len /= n;
73         console.log(cname + '   ' + rate + '    ' + len);
74         return [rate, len];
75 }
76
77 function forObj(obj) {
78         var r = {
79                 JSON: series(obj, 'JSON', 20),
80                 msgpack: series(obj, 'msgpack', 20),
81                 bison: series(obj, 'bison', 20)
82         };
83         return r;
84 }