# Ideal laptop for performances

**URL:** https://discourse.processing.org/t/ideal-laptop-for-performances/16623
**Category:** Project Guidance
**Created:** [December 25, 2019, 2:29am UTC](https://discourse.processing.org/t/ideal-laptop-for-performances/16623 "2019-12-25T02:29:22Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![manu](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/manu/32/6255_2.png) [@manu](https://discourse.processing.org/u/manu)
#### Post date: [December 25, 2019, 2:29am UTC](https://discourse.processing.org/t/ideal-laptop-for-performances/16623/1 "2019-12-25T02:29:22Z")

</div>

Hi Everyone!

I’ve been doing processing for awhile, and I am scaling up my projects. I recently got into a group art show, and to have my code run in a gallery space for eight hours a day, 6 days a week for up to 6 months.

I’ve got a budget (up to 1500) to get an new laptop for the art show. I’ve got a MacBook Pro, at 1_6gb of ram, 2.3 GHz Dual-Core Intel Core i5,_ and _Intel Iris Plus Graphics 640 1536 MB_

My ideal laptop should be able to run code smoothly, take in sound (smoothly), no lag at 60 fps and hopefully be around for future projects.

All advice is greatly appreciated!

Happy holidays  
Manu

---

<div class="post-metadata">

### Author: ![GoToLoop](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/gotoloop/32/86_2.png) [@GoToLoop](https://discourse.processing.org/u/GoToLoop)
#### Post date: [December 25, 2019, 9:22am UTC](https://discourse.processing.org/t/ideal-laptop-for-performances/16623/2 "2019-12-25T09:22:17Z")

</div>

> [@manu](#):
>
> I’ve got a MacBook Pro,

I’ve found this list for Macs on [NewEgg.com](http://NewEgg.com); but they’re all refurbished:🍎  
[Refurbished Apple MacBooks](https://www.newegg.com/p/pl?N=100006740%204084%204814%204016%20600136700%20601286795%20600029658%20600003805%204023&PageSize=96)

> [@manu](#):
>
> I’ve got a budget (up to 1500) to get an new laptop for the art show.

> [@manu](#):
>
> My ideal laptop should be able to run code smoothly,

Generally, performance on a budget you’d only find on non-Apple PCs: 😈  
[Brand New Non-Apple PC gaming laptops](https://www.newegg.com/p/pl?N=100167732%20600553910%204814%204084%20601286876%20601309374%20600029658%20601284678%204023&PageSize=96)

---

<div class="post-metadata">

### Author: ![manu](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/manu/32/6255_2.png) [@manu](https://discourse.processing.org/u/manu)
#### Post date: [December 26, 2019, 11:57pm UTC](https://discourse.processing.org/t/ideal-laptop-for-performances/16623/3 "2019-12-26T23:57:22Z")

</div>

Thanks GoToLoop. These links are helpful!

Follow up question:  
If budget wasn’t an issue, any laptop recommendations for performance?

---

<div class="post-metadata">

### Author: ![GoToLoop](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/gotoloop/32/86_2.png) [@GoToLoop](https://discourse.processing.org/u/GoToLoop)
#### Post date: [December 27, 2019, 1:28am UTC](https://discourse.processing.org/t/ideal-laptop-for-performances/16623/4 "2019-12-27T01:28:58Z")

</div>

Got none in mind, sorry. 😖

For graphics performance, most important is a dedicated graphics card w/ high memory bandwidth. 🏎

Just change the “Price” filter in order to see better gaming laptop options. 💡

---

<div class="post-metadata">

### Author: ![Tiemen](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/tiemen/32/5477_2.png) [@Tiemen](https://discourse.processing.org/u/Tiemen)
#### Post date: [December 27, 2019, 10:51am UTC](https://discourse.processing.org/t/ideal-laptop-for-performances/16623/5 "2019-12-27T10:51:51Z")

</div>

> [@GoToLoop](#):
>
> most important is a dedicated graphics card

I can confirm this. My laptop doesn’t have a proper graphic card and I can’t go all out in my sketches. Especially complex 3D sketches pose a problem. It also gets hot if I run complex sketches for too long, so I need to use a laptop cooler (which works great, but a downside is that it makes a bit of noise).

I’m not familiar with pc hardware so can’t give you reliable advice there, but I would [search this forum](https://discourse.processing.org/search?q=framerate). Looking for terms such as ‘framerate drop’ and ‘slow framerate’ might help you to make an inventory of what’s causing slow sketches.  
Although some of these issues can be solved by making the code more efficient, it gives you an idea of which type of sketches are tough for your computer. This might help in making a well informed decision.

Best of luck!

---

<div class="post-metadata">

### Author: ![manu](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/manu/32/6255_2.png) [@manu](https://discourse.processing.org/u/manu)
#### Post date: [January 8, 2020, 2:04am UTC](https://discourse.processing.org/t/ideal-laptop-for-performances/16623/6 "2020-01-08T02:04:25Z")

</div>

Thanks Tiemen!

I am still doing some research, however this article from 2017, sheds some light on integrated graphics cards:  
[https://www.laptopmag.com/articles/intel-hd-graphics-comparison](https://www.laptopmag.com/articles/intel-hd-graphics-comparison)

I’ll be taking your advice, coding the project first and then seeing what works best.

---

<div class="post-metadata">

### Author: ![kll](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/kll/32/964_2.png) [@kll](https://discourse.processing.org/u/kll)
#### Post date: [January 8, 2020, 3:04am UTC](https://discourse.processing.org/t/ideal-laptop-for-performances/16623/7 "2020-01-08T03:04:02Z")

</div>

-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](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](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.

```auto
// 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:

```auto
stresstest ( 180*180 = 32400 ) points

```

> **here means**
>
> ```auto
> 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
> 
> ```

 ![stresstest](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/2X/4/46afae3cb1cb4e6a0008de06c84a70e5cdace426.png)

---

<div class="post-metadata">

### Author: ![manu](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/manu/32/6255_2.png) [@manu](https://discourse.processing.org/u/manu)
#### Post date: [June 14, 2020, 12:42am UTC](https://discourse.processing.org/t/ideal-laptop-for-performances/16623/8 "2020-06-14T00:42:52Z")

</div>

This is a great Idea!

---

<div class="post-metadata">

### Author: ![manu](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/manu/32/6255_2.png) [@manu](https://discourse.processing.org/u/manu)
#### Post date: [June 14, 2020, 12:43am UTC](https://discourse.processing.org/t/ideal-laptop-for-performances/16623/9 "2020-06-14T00:43:27Z")

</div>

As of now I had to abandon the whole laptop direction. I ended getting a Cyberton Prebuilt - desktop - the SET; it ended up being a sweet deal and in my budget.
