test/examples/apply_to_call_benchmark.js

Sun, 08 Nov 2015 10:25:46 -0800

author
asaha
date
Sun, 08 Nov 2015 10:25:46 -0800
changeset 1687
6abfa80b9ef2
parent 963
e2497b11a021
permissions
-rw-r--r--

Added tag jdk8u66-b18 for changeset 39bfb9eb75dc

attila@963 1 /*
attila@963 2 * Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved.
attila@963 3 *
attila@963 4 * Redistribution and use in source and binary forms, with or without
attila@963 5 * modification, are permitted provided that the following conditions
attila@963 6 * are met:
attila@963 7 *
attila@963 8 * - Redistributions of source code must retain the above copyright
attila@963 9 * notice, this list of conditions and the following disclaimer.
attila@963 10 *
attila@963 11 * - Redistributions in binary form must reproduce the above copyright
attila@963 12 * notice, this list of conditions and the following disclaimer in the
attila@963 13 * documentation and/or other materials provided with the distribution.
attila@963 14 *
attila@963 15 * - Neither the name of Oracle nor the names of its
attila@963 16 * contributors may be used to endorse or promote products derived
attila@963 17 * from this software without specific prior written permission.
attila@963 18 *
attila@963 19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
attila@963 20 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
attila@963 21 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
attila@963 22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
attila@963 23 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
attila@963 24 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
attila@963 25 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
attila@963 26 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
attila@963 27 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
attila@963 28 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
attila@963 29 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
attila@963 30 */
attila@963 31
attila@963 32 var Class = {
attila@963 33 create: function() {
attila@963 34 return function() { //vararg
attila@963 35 this.initialize.apply(this, arguments);
attila@963 36 }
attila@963 37 }
attila@963 38 };
attila@963 39
attila@963 40 Color = Class.create();
attila@963 41 Color.prototype = {
attila@963 42 red: 0, green: 0, blue: 0,
attila@963 43 initialize: function(r,g,b) {
attila@963 44 this.red = r;
attila@963 45 this.green = g;
attila@963 46 this.blue = b;
attila@963 47 }
attila@963 48 }
attila@963 49
attila@963 50 function bench(x) {
attila@963 51 var d = new Date;
attila@963 52 var colors = new Array(16);
attila@963 53 for (var i=0;i<1e8;i++) {
attila@963 54 colors[i&0xf] = (new Color(1,2,3));
attila@963 55 }
attila@963 56 print(new Date - d);
attila@963 57 return colors;
attila@963 58 }
attila@963 59 bench(17);
attila@963 60
attila@963 61 print("Swapping out call");
attila@963 62 Function.prototype.call = function() {
attila@963 63 throw "This should not happen, apply should be called instead";
attila@963 64 };
attila@963 65
attila@963 66 bench(17);
attila@963 67
attila@963 68 print("All done!");

mercurial