UNPKG

1.37 kBJavaScriptView Raw
1#!/usr/bin/env node
2/**
3 * @author Pedro Nasser
4 * Marcelo M. Fleury
5 */
6var maxMethods = 100000;
7var maxObjects = 10000000;
8var object;
9
10// Object Proto
11function ClassProto () {};
12
13console.time('ClassProtoMethods');
14for (var m = 0; m < maxMethods; m++)
15 ClassProto.prototype['method'+m] = function (o) { return 1+o; };
16console.timeEnd('ClassProtoMethods');
17
18console.time('ClassProtoCalls');
19for (var o = 0; o < maxObjects; o++)
20{
21 object = new ClassProto();
22 object.method99999(o);
23}
24console.timeEnd('ClassProtoCalls');
25
26// Object Literal
27var ClassLiteral = {};
28console.time('ClassLiteralMethods');
29for (var m = 0; m < maxMethods; m++)
30 ClassLiteral['method'+m] = function (o) { return 1+o; };
31console.timeEnd('ClassLiteralMethods');
32
33console.time('ClassLiteralCalls');
34for (var o = 0; o < maxObjects; o++)
35{
36 //object = Object.create(ClassLiteral);
37 //object.method99999(o);
38 ClassLiteral.method99999(o);
39}
40console.timeEnd('ClassLiteralCalls');
41
42// Object Function
43var ObjectFunction = function (){};
44
45console.time('ObjectFunctionMethods');
46for (var m = 0; m < maxMethods; m++)
47 ObjectFunction.prototype['method'+m] = function (o) { return 1+o; };
48console.timeEnd('ObjectFunctionMethods');
49
50console.time('ObjectFunctionCalls');
51for (var o = 0; o < maxObjects; o++)
52{
53 object = new ObjectFunction();
54 object.method99999(o);
55}
56console.timeEnd('ObjectFunctionCalls');
\No newline at end of file