View difference between Paste ID: TJqZDUHV and RFL7yARt
SHOW: | | - or go back to the newest paste.
1
(function benchmark() {
2
3
    var testObject = {
4
        prop1: 4,
5
        prop2: 4,
6
        prop3: 4,
7
        prop4: 4,
8
        prop5: 4,
9
        prop6: 4,
10
        prop7: 4,
11
        prop8: 4,
12
        prop9: 4,
13
        prop10: 4,
14
        prop11: 4,
15
        prop12: 4,
16
        prop13: 4,
17
        prop14: 4,
18
        prop15: 4,
19
        prop16: 4,
20
        prop17: 4,
21
        prop18: 4,
22
        prop19: 4,
23
        prop20: 4,
24
        prop21: 4,
25
        prop22: 4,
26
        prop23: 4,
27
        prop24: 4,
28
        prop25: 4,
29
        prop26: 4,
30
        prop27: 4,
31
        prop28: 4,
32
        prop29: 4,
33
        prop: 3
34
    };
35
36-
        function monomorphic(a) {
36+
    function monomorphic(a) {
37-
            return a.prop + a.prop;
37+
        return a.prop + a.prop;
38
    }
39
40-
        function megamorphic(a) {
40+
    function megamorphic(a) {
41-
            return a.prop + a.prop;
41+
        return a.prop + a.prop;
42
    }
43
44
    var IC_filler = 100000000,
45
        bench = 10000000;
46
47
    var objs = [{
48
            prop: 3
49
        }, {
50
            prop3: 4,
51
            prop: 3,
52
            prop2: 4
53
        }, {
54
            prop4: 4,
55
            prop2: 4,
56
            prop: 3,
57
            prop5: 6
58
        },
59
        testObject, {
60
            prop7: 15,
61
            prop30: 12,
62
            prop314: 4,
63
            prop34: 15,
64-
    var l = 100000000;
64+
65
        }
66
    ];
67
    var l = IC_filler;
68
    while (l--) {
69
        var index = Math.random() * objs.length | 0;
70-
    var l = 100000000;
70+
71
    }
72
73
    var l = IC_filler;
74
75
    while (l--) {
76
        monomorphic(testObject);
77-
        l = 10000000;
77+
78
79
    var now = Date.now(),
80
        l = bench;
81
82
    while (l--) {
83
        if (megamorphic(testObject) !== 6) {
84
            die();
85
        }
86
    }
87
88-
        l = 10000000;
88+
89
90
    var now = Date.now(),
91
        l = bench;
92
93
    while (l--) {
94
        if (monomorphic(testObject) !== 6) {
95
            die();
96
        }
97
    }
98
99
    print("Monomorphic", Date.now() - now);
100
101
})();