benchmarks/sieve/src/test/java/org/apidesign/benchmark/sieve/n64/LongSieveTest.java
2 * Back 2 Browser Bytecode Translator
3 * Copyright (C) 2012-2015 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, version 2 of the License.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. Look for COPYING file in the top folder.
16 * If not, see http://opensource.org/licenses/GPL-2.0.
18 package org.apidesign.benchmark.sieve.n64;
20 import java.io.IOException;
21 import net.java.html.js.JavaScriptBody;
22 import org.apidesign.bck2brwsr.vmtest.Compare;
23 import org.apidesign.bck2brwsr.vmtest.VMTest;
24 import org.testng.annotations.Factory;
28 * @author Jaroslav Tulach <jtulach@netbeans.org>
30 public class LongSieveTest extends Primes {
31 public LongSieveTest() {
34 @JavaScriptBody(args = { }, body = "return new Date().getTime();")
35 protected int time() {
36 return (int) System.currentTimeMillis();
40 public long oneThousand() throws IOException {
41 LongSieveTest sieve = new LongSieveTest();
43 long res = sieve.compute(1000);
44 int took = time() - now;
45 log("oneThousand in " + took + " ms");
50 @Compare(slowdown = 3.0)
51 public long fiveThousand() throws IOException {
52 LongSieveTest sieve = new LongSieveTest();
54 long res = sieve.compute(5000);
55 int took = time() - now;
56 log("oneThousand in " + took + " ms");
59 @Compare(slowdown = 3.0)
60 public long tenThousand() throws IOException {
61 LongSieveTest sieve = new LongSieveTest();
63 long res = sieve.compute(10000);
64 int took = time() - now;
65 log("oneThousand in " + took + " ms");
70 public static Object[] create() {
71 return VMTest.create(LongSieveTest.class);
74 @JavaScriptBody(args = { "msg" }, body = "if (typeof console !== 'undefined') console.log(msg);")
76 protected void log(String msg) {
77 System.err.println(msg);