| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- //-------------------------------------------------------------------------------------------------------
- // Copyright (C) Microsoft. All rights reserved.
- // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
- //-------------------------------------------------------------------------------------------------------
- var test = new Object();
- test.nokill_singleuse = function(o, b)
- {
- var x = 0;
- var y = 0;
- for (var i = 1; i < 10000; i++)
- {
- x = (o.x) & 0x3FFFF;
- o.x = x + y;
- y = (o.x) & 0xFFFF;
- }
- return x + y;
- }
- test.kill_singleuse = function(o, b)
- {
- var x = 0;
- var y = 0;
- for (var i = 1; i < 10000; i++)
- {
- x = (o.x) & 0x3FFFF;
- b.x = x + y;
- y = (o.x) & 0xFFFF;
- }
- return x + y;
- }
- test.nokill_twouse_before = function(o, b)
- {
- var x = 0;
- var y = 0;
- for (var i = 1; i < 10000; i++)
- {
- x = (o.x + o.x) & 0x3FFFF;
- o.x = x + y;
- y = (o.x) & 0xFFFF;
- }
- return x + y;
- }
- test.kill_twouse_before = function(o, b)
- {
- var x = 0;
- var y = 0;
- for (var i = 1; i < 10000; i++)
- {
- x = (o.x + o.x + o.x + o.x + o.x) & 0x3FFFF;
- b.x = x + y;
- y = (o.x) & 0xFFFF;
- }
- return x + y;
- }
- test.nokill_multiuse_before = function(o, b)
- {
- var x = 0;
- var y = 0;
- for (var i = 1; i < 10000; i++)
- {
- x = (o.x + o.x) & 0x3FFFF;
- o.x = x + y;
- y = (o.x) & 0xFFFF;
- }
- return x + y;
- }
- test.kill_multiuse_before = function(o, b)
- {
- var x = 0;
- var y = 0;
- for (var i = 1; i < 10000; i++)
- {
- x = (o.x + o.x + o.x + o.x + o.x) & 0x3FFFF;
- b.x = x + y;
- y = (o.x) & 0xFFFF;
- }
- return x + y;
- }
- test.nokill_multiuse_after = function(o, b)
- {
- var x = 0;
- var y = 0;
- for (var i = 1; i < 10000; i++)
- {
- x = (o.x) & 0x3FFFF;
- o.x = x + y;
- y = (o.x + o.x + o.x + o.x + o.x) & 0xFFFF;
- }
- return x + y;
- }
- test.kill_multiuse_after = function(o, b)
- {
- var x = 0;
- var y = 0;
- for (var i = 1; i < 10000; i++)
- {
- x = (o.x) & 0x3FFFF;
- b.x = x + y;
- y = (o.x + o.x + o.x + o.x + o.x) & 0xFFFF;
- }
- return x + y;
- }
- test.nokill_multiuse_before_and_after = function(o, b)
- {
- var x = 0;
- var y = 0;
- for (var i = 1; i < 10000; i++)
- {
- x = (o.x + o.x + o.x + o.x + o.x) & 0x3FFFF;
- o.x = x + y;
- y = (o.x + o.x + o.x + o.x + o.x) & 0xFFFF;
- }
- return x + y;
- }
- test.kill_multiuse_before_and_after = function(o, b)
- {
- var x = 0;
- var y = 0;
- for (var i = 1; i < 10000; i++)
- {
- x = (o.x + o.x + o.x + o.x + o.x) & 0x3FFFF;
- b.x = x + y;
- y = (o.x + o.x + o.x + o.x + o.x) & 0xFFFF;
- }
- return x + y;
- }
- function runtest(name, func)
- {
- var total_time = 0;
- var iter = 0;
- for (var i = 0; i < 1000; i++)
- {
- o = new Object();
- o.x = 1;
- var d = new Date();
- func(o, o);
- total_time += (new Date() - d);
- iter++;
- if (total_time > 1000)
- {
- break;
- }
- }
- var output = name;
- if (name.length < 40)
- {
- for (var i = 0; i < 40 - name.length; i++)
- {
- output += " ";
- }
- }
- WScript.Echo(output + ": " + (((total_time / iter) * 1000) | 0) + " (per 1000 iteration, executed " + iter + " iterations)");
- }
- for (var x in test)
- {
- runtest(x, test[x]);
- }
|