Java-Gaming.org    
Featured games (78)
games approved by the League of Dukes
Games in Showcase (426)
Games in Android Showcase (89)
games submitted by our members
Games in WIP (466)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1] 2
  ignore  |  Print  
  Headline Benchmark  (Read 3182 times)
0 Members and 1 Guest are viewing this topic.
Offline ags1

JGO Knight


Medals: 29
Projects: 2
Exp: 5 years


Make code not war!


« Posted 2013-11-28 00:14:07 »

When I started Game development, I thought I should start with a small project and take it all the way to completion, so that I would have all the basics in place. Coding at home is nothing like coding at work... Also I wanted to build something with a website and that used OpenGL.

So I built Headline Benchmark, unashamedly the Windows Ubuntu Experience Index! It's a bit like a game - you get scores, it uses OpenGL... Arguably, it is not a game because it does not have a game loop, although that is straying into Gaming Philosophy.

You can go along to my site and download it for yourself for Windows or Linux - it takes about five minutes to run:

http://www.headline-benchmark.com

Direct link to the download page: http://www.headline-benchmark.com/download.jsp

After running it, you can click the Submit button to send the results to the website.

I don't have proper installers yet - just archives and shell scripts, but I will add these as I want to put it on the Ubuntu Software Center. (And also the Windows Store, assuming that allows Java apps).


Offline opiop65

JGO Kernel


Medals: 128
Projects: 7
Exp: 3 years


Team Alluminum


« Reply #1 - Posted 2013-11-28 00:59:31 »

Very cool actually! Is your rating index just based on clock speed/amount of RAM etc... Or does it actually use data from the internet and using that to compare? Because some CPUs my be faster on paper, but slower in an actually computer... just wondering how you calculate the results, its very interesting!

Offline rv3392

Senior Member


Medals: 2
Projects: 1


Crafted Games


« Reply #2 - Posted 2013-11-28 07:39:54 »

Looks Cool. I'm going to download it now.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline ags1

JGO Knight


Medals: 29
Projects: 2
Exp: 5 years


Make code not war!


« Reply #3 - Posted 2013-11-28 09:22:07 »

Very cool actually! Is your rating index just based on clock speed/amount of RAM etc... Or does it actually use data from the internet and using that to compare? Because some CPUs my be faster on paper, but slower in an actually computer... just wondering how you calculate the results, its very interesting!

All the data on the website is submitted by users running Headline Benchmark. Headline executes the following tests to evaluate computer performance: integer, floating point, single- to multi-thread scenarios, GPU geometry, textures, shaders, and memory performance (array copying).

I rate systems in four categories: Headline (general purpose), Gaming (biased towards GPU), Office (biased towards CPU) and creative (biased towards parallel processing).

@rv3392 - thanks, let me know how it goes (assuming it goes...:-)...).

The component scores are aggregated from the system results. I don't just store an average - I build a curve of results to show effects of overclocking or power-saving states, but I don't have enough data yet to make it worth my time to build the JSPs to show the curves (I would need dozens of different systems contributing data for each component). Each component tells you how many results and unique systems have contributed to the aggregate.

Online Mike

JGO Ninja


Medals: 69
Projects: 1
Exp: 5 years


Java guru wanabee


« Reply #4 - Posted 2013-11-29 11:23:35 »

I ran the test and it worked fine. I indeed doubt how much of a game it is though ;-)

Mike

My current game, Minecraft meets Farmville and goes online Smiley
State of Fortune | Discussion thread @ JGO
Offline ags1

JGO Knight


Medals: 29
Projects: 2
Exp: 5 years


Make code not war!


« Reply #5 - Posted 2013-11-29 12:46:36 »

Thanks to Mike and Anonymouse!

@Mickelukas, if I integrate my chess game as another performance test, will it qualify as a game then?  Grin (The computer would play itself of course.)

One user has hit an error and nicely allowed the app to send the website an error report - so automated error reporting seems to be working correctly too. As for the exception, I think some graphics cards are giving me null graphic card name.

EDIT: It turns out that recent Nvidia cards (at least certain 7xx series) do not support the JOGL GL2 profile, causing graphics tests to fail, and causing serialization of the results to fail too (even if graphics tests aren't run). I should have a fix soon.

Operating system score card so far:

Win-64 version: 11 downloads.
Win-32 version: 1 download (me)
Linux-64 version: 0 downloads
Linux-32 version: 1 download (me)

I thought there would be a few more linuxers...

Offline ags1

JGO Knight


Medals: 29
Projects: 2
Exp: 5 years


Make code not war!


« Reply #6 - Posted 2013-12-01 22:55:45 »

I have put up a new version of Headline Benchmark, mainly updating the JOGL library and fixing some crash scenarios affecting at least the GTX 770.

I made one enhancement with this version - there is now a Feedback button that lets you send in a user comment to the website. The comment is not made public on the internet.

UPDATE: GTX770 fails on win-64, but I have a result from win-32 that passes. So it looks like a JOGL bug.

Offline ags1

JGO Knight


Medals: 29
Projects: 2
Exp: 5 years


Make code not war!


« Reply #7 - Posted 2013-12-08 22:33:23 »

I have released a new version of Headline Benchmark, fixing some screen flickering in one of the OpenGL tests and rebalancing the system scores. I also added a feedback button so users can send in feedback directly from the app (the feedback goes into the bug tracking system on my website).

I also added a command-line pure Java version for testing CPUs on any system. (The full application is restricted to only Linux and Windows as it uses OS-specific commands to get hardware information).

Come on, submit your system to my website and immortalize your hardware!

Offline ags1

JGO Knight


Medals: 29
Projects: 2
Exp: 5 years


Make code not war!


« Reply #8 - Posted 2013-12-10 23:24:31 »

I started work on the Windows installer at long last. The first step was wrapping the JAR with Launch4J which went flawlessly, to my surprise. I just need to figure out some art for a splash screen (something transparent, I think) and then I will build the MSI with this tool:

http://dennisbareis.com/makemsi.htm

Ubuntu is easier - I send Canonical the JAR and they package it for me!

Operating system scorecard:

headline-benchmark-windows-64.zip = 35
headline-benchmark-windows-32.zip = 8
headline-benchmark-linux-64.tar = 6
headline-benchmark-linux-32.tar = 5
hb_cli.zip  = 3

I've had some downloads for Linux but no recent uploaded results, which is a little worrying. Linux was the main platform I wanted to deliver on...

Splash screen suggestions are welcomed :-)

Offline bilznatch

Senior Member


Medals: 7
Projects: 2
Exp: 1 year


I'm bad, I'm bad, I'm really... really bad T_T


« Reply #9 - Posted 2013-12-11 00:37:55 »

like this?
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline ags1

JGO Knight


Medals: 29
Projects: 2
Exp: 5 years


Make code not war!


« Reply #10 - Posted 2013-12-11 20:14:58 »

I'll take it! I will get rid of the purple cloudy thing though :-)



I ran this by my partner and bilznatch's got the thumbs up - apparently my version lacks fun :-(

Offline bilznatch

Senior Member


Medals: 7
Projects: 2
Exp: 1 year


I'm bad, I'm bad, I'm really... really bad T_T


« Reply #11 - Posted 2013-12-12 00:27:23 »

Oh well, you'll get em next time champ  Tongue

I just thought it'd be a bit plain without something in the background, I can change the color if purple isn't your style Tongue
Offline saucymeatman
« Reply #12 - Posted 2013-12-12 01:11:14 »

This is really cool!  Grin

I got like 7's and 6's on most things but a 10.05 on memory.... wtf?
Is this not a score out of 10? Please dont say its out of 100 haha!
Offline ags1

JGO Knight


Medals: 29
Projects: 2
Exp: 5 years


Make code not war!


« Reply #13 - Posted 2013-12-12 19:48:16 »

Thanks, saucymeatman! If you upload your results to the server you can compare your system to lots of others. 6/7 is an OK score, the top systems get nearer to 20. This is the current top score:

http://www.headline-benchmark.com/results/8234095e-f69e-41a0-ad23-e7f077c33ded

The score goes up exponentially, so double the performance doesn't quite give double the score (to reflect the law of diminishing returns).

Online theagentd
« Reply #14 - Posted 2013-12-12 21:40:16 »

Hah! I knew those 2400MHz RAM sticks would be worth it one day! xD

Myomyomyo.
Offline ags1

JGO Knight


Medals: 29
Projects: 2
Exp: 5 years


Make code not war!


« Reply #15 - Posted 2013-12-12 22:16:03 »

Hah! I knew those 2400MHz RAM sticks would be worth it one day! xD


Offline HeroesGraveDev

JGO Kernel


Medals: 214
Projects: 11
Exp: 2 years


If it wasn't Awesome, it wasn't me.


« Reply #16 - Posted 2013-12-12 22:20:35 »

Well...

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
Exception in thread "main" java.lang.InternalError: Cant connect to X11 window server using ':0' as the value of the DISPLAY variable.
        at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
        at sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.java:65)
        at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:110)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:74)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:190)
        at java.awt.GraphicsEnvironment.createGE(GraphicsEnvironment.java:102)
        at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:81)
        at sun.awt.X11.XToolkit.<clinit>(XToolkit.java:119)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:190)
        at java.awt.Toolkit$2.run(Toolkit.java:868)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:860)
        at javax.swing.UIManager.getSystemLookAndFeelClassName(UIManager.java:608)
        at com.clarke.agnes.benchmark.util.Utils.setPlatformLaf(Unknown Source)
        at com.clarke.agnes.benchmark.main.BenchmarkGui2.main(Unknown Source)

Offline HeroesGraveDev

JGO Kernel


Medals: 214
Projects: 11
Exp: 2 years


If it wasn't Awesome, it wasn't me.


« Reply #17 - Posted 2013-12-12 23:01:26 »

Turns out something went wrong with the X Server, and a minute or so after a few other applications crashed with similar problems.
I restarted it and it worked fine.

I actually got into one of the top 20s, and my both my integrated and dedicated graphics got into the Top 20 for something.
Not bad for a cheap laptop.

Offline ags1

JGO Knight


Medals: 29
Projects: 2
Exp: 5 years


Make code not war!


« Reply #18 - Posted 2013-12-12 23:06:01 »

I was thinking "Please tell me I didn't manage to get a simple call to getSystemLookAndFeel() wrong" - very relieved now!

And thanks for submitting a Linux result - I haven't seen many of those so far.

Offline ags1

JGO Knight


Medals: 29
Projects: 2
Exp: 5 years


Make code not war!


« Reply #19 - Posted 2013-12-15 14:27:22 »

I uploaded a new version. The main changes this time are for Windows users - the app is now wrapped in an EXE by launch4j. This allows me to easily set the process priority to high, and also lets me offer a Java download for users without a public JRE.

As a Win-32 exclusive, the new splash screen is also available.

I also added some code to try to read CPU name from the registry if my calls to WMIC fail, as they occasionally do.

Also, I now have an application icon, so no more generic Java coffee cup :-)

Offline SHC
« Reply #20 - Posted 2013-12-15 16:27:16 »

Any version for mac users like me? I can package for mac if you want to.

Offline ags1

JGO Knight


Medals: 29
Projects: 2
Exp: 5 years


Make code not war!


« Reply #21 - Posted 2013-12-15 16:32:22 »

I want to do a Mac version, but I need some help with the OS-specific code... How to get the CPU name and system memory on a mac?

Also, I don't have a mac to test on.. :-(

Offline SHC
« Reply #22 - Posted 2013-12-15 16:38:04 »

Maybe this can help you.

SIGAR - System Information Gatherer And Reporter

Offline SHC
« Reply #23 - Posted 2013-12-15 16:47:29 »

I can write a C program to get those details. Can you just execute it and capture the output?

Offline SHC
« Reply #24 - Posted 2013-12-15 17:15:37 »

Okay, here's the program.

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
#include <sys/types.h>
#include <sys/sysctl.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
    char buf[100];
    size_t buflen = 100;

    sysctlbyname("machdep.cpu.brand_string", &buf, &buflen, NULL, 0);
    printf("%s\n", buf);

    int mib[] = { CTL_HW, HW_MEMSIZE };
    int64_t value = 0;
    size_t length = sizeof(value);

    if (sysctl(mib, 2, &value, &length, NULL, 0) == -1)
    {
        printf("RAM SIZE: Unknown\n");
        return -1;
    }

    printf("RAM SIZE: %lld BYTES\n", value);
}

And this is the produced output.

1  
2  
Pentium(R) Dual-Core  CPU      E5300  @ 2.60GHz
RAM SIZE: 4294967296 BYTES

Offline ags1

JGO Knight


Medals: 29
Projects: 2
Exp: 5 years


Make code not war!


« Reply #25 - Posted 2013-12-15 17:45:18 »

Cool, but keeping this to java...? For example, I I do Runtime.exex() to get this info through WMIC on Windows, and read /proc on Linux.

Offline SHC
« Reply #26 - Posted 2013-12-15 17:51:27 »

Why not use JNI? Or is there any better option? Can you post the code you use Runtime.exec() on windows? How are you parsing that information?

Offline ags1

JGO Knight


Medals: 29
Projects: 2
Exp: 5 years


Make code not war!


« Reply #27 - Posted 2013-12-15 19:41:20 »

It's not pretty but it works - I'm hoping that I can feed some similar code AppleScript:

   private static String doWmic(String alias, String whatToGet) {
      try {             
         String command = "wmic " + alias + " get " + whatToGet; 
         String executeCommand = CommandExecutor.executeCommand(command);
         String result = executeCommand.substring(executeCommand.indexOf("\n")).trim();
         if ("".equals(whatToGet)) result = "\n" + result;
         return cleanUp(result);
      } catch (Exception ignore) {
            if ("cpu".equals(alias)) {
                try {
                    return WinRegistryMain.getCpuName();
                } catch (Throwable t) {
                    Benchmark.handleError(ErrorHandler.ErrorLevel.major,
                            "An error occurred while doing a Windows command.",
                            WindowsSystemInfo.class, t);
                    return "0";
                }
            }
            Benchmark.handleError(ErrorHandler.ErrorLevel.major,
                    "An error occurred while doing a Windows command.",
                    WindowsSystemInfo.class, ignore);
            return "0";
      }
   }


And CommandExecutor does this:

   public static String executeCommand(String command) {
      Runtime rt = Runtime.getRuntime();         
      StreamWrapper error, output;
      try {             
         Process proc = rt.exec(command); 
         error = getStreamWrapper(proc.getErrorStream(), "ERROR");   
         output = getStreamWrapper(proc.getInputStream(), "OUTPUT");     
         error.start();
         output.start();         
         error.join(20 * 1000);           
         output.join(20 * 1000);           
         proc.waitFor();
         return output.message;
      } catch (Exception e) {
            Benchmark.handleError(ErrorHandler.ErrorLevel.major, "An error occurred while executing an operating system-specific command: " + command,
                    CommandExecutor.class, e);
            return "0";
        }
   }

Offline ags1

JGO Knight


Medals: 29
Projects: 2
Exp: 5 years


Make code not war!


« Reply #28 - Posted 2013-12-15 23:59:04 »

I just got a result from one of the new radeon cards. My worst nightmare has been confirmed. These cards make no effort to identify themselves properly... all i know is that this card is a:

AMD Radeon R9 200 Series

280? 280X? 290? 290X?

Does that mean all AMD will tell me about the R7 cards is that they are R7 200 Series? How an I supposed to produce anything sensible from that?

Does anybody know of a way to get a better name for a graphics card than the GL_STRING approach I'm currently using?

Offline SHC
« Reply #29 - Posted 2013-12-16 16:00:32 »

@ags1

Here's some code using JAVA and APPLESCRIPT.

AppleScript

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
set theInfo to do shell script "/usr/sbin/system_profiler -detailLevel mini | egrep '(Processor Name|Processor Speed|Memory): ' | cut -d: -f2-"
set AppleScript's text item delimiters to return
set theList to text items of theInfo
set AppleScript'
s text item delimiters to "" -- get results
item 1 of theList -- Cpu Name
item 2 of theList -- cpu Speed
item 3 of theList -- Ram

set output to (item 1 of theList & " " & item 2 of theList & " XXXXX " & item 3 of theList)

do shell script "echo " & output

Java code

1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
import java.io.BufferedReader;
import java.io.InputStreamReader;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class OSXSystemInfo
{

    public static void main(String[] args) throws ScriptException
    {
        ScriptEngineManager mgr = new ScriptEngineManager();
        ScriptEngine engine = mgr.getEngineByName("AppleScript");
       
        String[] output = ((String) engine.eval(new BufferedReader
                                             (new InputStreamReader(
                                                                    OSXSystemInfo.class.getResourceAsStream("/OSXInfoScript.scpt")
                                             )))).split("XXXXX");
       
        System.out.println("PROCESSOR: " + output[0].trim());
        System.out.println("RAM: " + output[1].trim());
    }
   
}

Output

1  
2  
PROCESSOR: Intel Core 2 Duo 2.62 GHz
RAM: 4 GB

Will you give me a credit?

Pages: [1] 2
  ignore  |  Print  
 
 

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

xsi3rr4x (72 views)
2014-04-15 18:08:23

BurntPizza (68 views)
2014-04-15 03:46:01

UprightPath (79 views)
2014-04-14 17:39:50

UprightPath (65 views)
2014-04-14 17:35:47

Porlus (80 views)
2014-04-14 15:48:38

tom_mai78101 (104 views)
2014-04-10 04:04:31

BurntPizza (164 views)
2014-04-08 23:06:04

tom_mai78101 (260 views)
2014-04-05 13:34:39

trollwarrior1 (210 views)
2014-04-04 12:06:45

CJLetsGame (220 views)
2014-04-01 02:16:10
List of Learning Resources
by SHC
2014-04-18 03:17:39

List of Learning Resources
by Longarmx
2014-04-08 03:14:44

Good Examples
by matheus23
2014-04-05 13:51:37

Good Examples
by Grunnt
2014-04-03 15:48:46

Good Examples
by Grunnt
2014-04-03 15:48:37

Good Examples
by matheus23
2014-04-01 18:40:51

Good Examples
by matheus23
2014-04-01 18:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:22:30
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!