Ideal laptop for performances

-a- also as there is lots of your money involved,
you could give the sales people some hard time…

prepare a USB stick with processing
( tested with windows )
you can unzip / install processing incl sketchbook and libraries to a usb stick
http://download.processing.org/processing-3.5.3-windows64.zip
after first start need to change preferences to the usb stick sketchbook.

for linux you just should have the downloaded zip on it too.
http://download.processing.org/processing-3.5.3-linux64.tgz
is it would not run apps from usb??

-b- the idea with YOUR ready sketch is good,
add can use some stress test code.

// kll bench and stress test with sysinfo and numinfo
// OPERATION: key [UP] [DOWN] [s]
// graphic card info only see with P2D P3D renderer selected
// rev 0.6 add mouse present and focus info // disable ( but not delete ) NUM_INFO
// rev 0.7 change from [+][-] to [UP][DOWN] keys for laptop thanks @Tiemen

float rset=500, r; //_ default is 60 FPS
int x = 0;
int w = 500;
int h = 500;
int grid=20, many = grid*grid;
boolean stressenable=true;

void settings() {
  //  size(w, h); // default use JAVA2D 
  //  size(w, h,FX2D);
  //  size(w, h,P2D);
  size(w, h,P3D); //depricated  size(w, h,OPENGL);
}

void setup() {
  frameRate(rset);
  background(200, 200, 0);
  //numinfo();
  sysinfo();
  println("\nstresstest ( "+grid+"*"+grid+" = "+many+" ) points, \nkey [UP][DOWN] grid +-10\nkey [s] disable stress test" );
}

void draw() {
  surface.setTitle("SYS INFO set "+rset+": "+ nf(r, 0, 1)+" FPS" );
  if ( stressenable ) stress();
  r = frameRate;
  plot_fps();
  check_mouse();
}

void plot_fps() {
  if ( r > 30 )      stroke(0, 200, 0); 
  else               stroke(200, 0, 0);
  line(x, height-2, x, height-2-r);            // FPS graph
  x++;
  if ( x > width ) { 
    x = 0; 
    background(200, 200, 0);
  }
}

void stress() {
  push();
  for ( int i=0; i<grid; i++) {
    for ( int j=0; j<grid; j++) {
      stroke(random(255), random(255), random(255) );
      point(5+i, 5+j);
    }
  }  
  pop();
}

boolean mousePresent=false;

public void mouseExited() {
  mousePresent = false;
}

public void mouseEntered() {
  mousePresent = true;
}

void check_mouse() {
  push();
  fill(0,0,200);
  rect(width-110,0,110,20);
  fill(200);
  if ( mousePresent && focused ) text("focus + mouse",width-100,15);
  else if ( mousePresent )       text("mouse",width-100,15);
  else if ( focused )            text("focus",width-100,15);
  pop();
}

void sysinfo() {
  println( "__SYS INFO :");
  println( "System     : " + System.getProperty("os.name") + "  " + System.getProperty("os.version") );// + "  " + System.getProperty("os.arch") );
  println( "JAVA       : " + System.getProperty("java.home")  + " rev: " +javaVersionName);
  //println( System.getProperty("java.class.path") );
  //println( "\n" + isGL() + "\n" );
  println( "OPENGL     : VENDOR " + PGraphicsOpenGL.OPENGL_VENDOR+" RENDERER " + PGraphicsOpenGL.OPENGL_RENDERER+" VERSION " + PGraphicsOpenGL.OPENGL_VERSION+" GLSL_VERSION: " + PGraphicsOpenGL.GLSL_VERSION);
  println( "user.home  : " + System.getProperty("user.home") );
  println( "user.dir   : " + System.getProperty("user.dir") );
  println( "user.name  : " + System.getProperty("user.name") );
  println( "sketchPath : " + sketchPath() );
  println( "dataPath   : " + dataPath("") );
  println( "dataFile   : " + dataFile("") );
  println( "frameRate  : target "+nf(rset, 0, 1)+" actual "+nf(r, 0, 1));
  println( "canvas     : width "+width+" height "+height+" pix "+(width*height));
}

void numinfo() {
  println( "__NUM INFO :");
  println( "byte     "+Byte.SIZE+  " bit | min: "+Byte.MIN_VALUE+   "\t\t\t max: "+Byte.MAX_VALUE);
  println( "short   "+Short.SIZE+  " bit | min: "+Short.MIN_VALUE+  "\t\t\t max: "+Short.MAX_VALUE);
  println( "int     "+Integer.SIZE+" bit | min: "+Integer.MIN_VALUE+"\t\t max: "  +Integer.MAX_VALUE);
  println( "long    "+Long.SIZE+   " bit | min: "+Long.MIN_VALUE+   "\t max: "    +Long.MAX_VALUE);
  println( "float   "+Float.SIZE+  " bit | min: "+Float.MIN_VALUE+  "\t\t\t max: "+Float.MAX_VALUE);
  println( "double  "+Double.SIZE+ " bit | min: "+Double.MIN_VALUE+ "\t\t\t max: "+Double.MAX_VALUE);
}

void keyPressed() {
  if ( key != 's' && keyCode != UP && keyCode != DOWN ) println("key "+key+" keyCode "+keyCode);
  if ( key == 's' ) stressenable = ! stressenable;
  if ( keyCode == UP ) {
    grid +=10;
    many = grid*grid;
    println("stresstest ( "+grid+"*"+grid+" = "+many+" ) points" );
  }
  if ( keyCode == DOWN ) {
    grid -=10;
    grid = constrain(grid,0,height);
    many = grid*grid;
    println("stresstest ( "+grid+"*"+grid+" = "+many+" ) points" );
  }
}

how to compare ?
note at what GRID setting FPS under 30 ( red )
here get red lines:

stresstest ( 180*180 = 32400 ) points
here means
 budget Desktop PC:
 system: WIN 10 Pro
 mb : Gigabyte B450M DS3H 
 cpu: AMD Ryzen 5 3600 
 gpu: Nvidia GT 1030 
 ram: Corsair Vengeance LPX DDR4 2666 C16 1x8GB 
 ssd: SanDisk Ultra II 120GB

2 Likes