UNPKG

3.02 kBJavaScriptView Raw
1var dictionary = require('../lib/diameter-dictionary');
2
3var ITERATIONS = 1000000;
4
5var hrtimeToNanos = function(hrTime) {
6 return hrTime[0] * 1000000 + hrTime[1]
7}
8
9var testGetAvpByCode = function() {
10 var startTime = process.hrtime();
11 for (var i = 0; i < ITERATIONS; i++) {
12 for (var j = 0; j < 10; j++) {
13 dictionary.getAvpByCode(j);
14 }
15 }
16 return hrtimeToNanos(process.hrtime(startTime));
17}
18
19var testGetAvpByName = function() {
20 var names = [];
21 for (var j = 0; j < 10; j++) {
22 names.push(dictionary.getAvpByCode(j).name);
23 }
24 var startTime = process.hrtime();
25 for (var i = 0; i < ITERATIONS; i++) {
26 names.forEach(name => {
27 dictionary.getAvpByName(name);
28 });
29 }
30 return hrtimeToNanos(process.hrtime(startTime));
31}
32
33var testGetApplicationById = function() {
34 var startTime = process.hrtime();
35 for (var i = 0; i < ITERATIONS; i++) {
36 for (var j = 0; j < 8; j++) {
37 dictionary.getApplicationById(j);
38 }
39 }
40 return hrtimeToNanos(process.hrtime(startTime));
41}
42
43var testGetApplicationByName = function() {
44 var names = [];
45 for (var j = 0; j < 8; j++) {
46 names.push(dictionary.getApplicationById(j).name);
47 }
48 var startTime = process.hrtime();
49 for (var i = 0; i < ITERATIONS; i++) {
50 names.forEach(name => {
51 dictionary.getApplicationByName(name);
52 });
53 }
54 return hrtimeToNanos(process.hrtime(startTime));
55}
56
57var testGetCommandByCode = function() {
58 var startTime = process.hrtime();
59 for (var i = 0; i < ITERATIONS; i++) {
60 for (var j = 100; j < 104; j++) {
61 dictionary.getCommandByCode(j);
62 }
63 }
64 return hrtimeToNanos(process.hrtime(startTime));
65}
66
67var testGetCommandByName = function() {
68 var names = [];
69 for (var j = 100; j < 104; j++) {
70 names.push(dictionary.getCommandByCode(j).name);
71 }
72 var startTime = process.hrtime();
73 for (var i = 0; i < ITERATIONS; i++) {
74 names.forEach(name => {
75 dictionary.getCommandByName(name);
76 });
77 }
78 return hrtimeToNanos(process.hrtime(startTime));
79}
80
81var testGetAvpByCodeAndVendorId = function() {
82 var startTime = process.hrtime();
83 for (var i = 0; i < ITERATIONS; i++) {
84 dictionary.getAvpByCodeAndVendorId(6, 10415);
85 }
86 return hrtimeToNanos(process.hrtime(startTime));
87}
88
89var result = {
90 getAvpByCode: testGetAvpByCode() / ITERATIONS,
91 getAvpByName: testGetAvpByName() / ITERATIONS,
92 getApplicationById: testGetApplicationById() / ITERATIONS,
93 getApplicationByName: testGetApplicationByName() / ITERATIONS,
94 getCommandByCode: testGetCommandByCode() / ITERATIONS,
95 getCommandByName: testGetCommandByName() / ITERATIONS,
96 getAvpByCodeAndVendorId: testGetAvpByCodeAndVendorId() / ITERATIONS
97}
98
99console.log('Number of iterations: ' + ITERATIONS);
100console.log('Average duration (in nanoseconds) per function: ');
101console.log(JSON.stringify(result, null, 4));
\No newline at end of file