I've made a game in HTML5 & JS and want to test it on varying types of user setups as I've heard it doesn't perform too well on older MacBooks.

How can I accomplish this? I'm thinking of something like browserstack.com but for GPU, CPU and memory testing.


You could use virtual machines.

With a virtualization software like VirtualBox or VMWare you can simulate a computer inside a computer. You can install any operating system in them and you can artificially restrict the amount of hardware and CPU power the virtual machines have available.

This is of course not nearly as conclusive as testing on real hardware, especially when it comes to performance benchmarking. When you really want to know how fast a software runs on a given hardware, there is no way around actually testing it on that hardware.

But virtualized testing can still save you a lot of time and money.

  • \$\begingroup\$ I'm fairly sure VMWare doesn't allow you to do any virtualization of the GPU. Further, it will allow you to set the number of processors and the number of cores per processor, but it won't let you set the clock rate. Not sure about VirtualBox, but it likely has similar limitations. In my opinion, when testing graphics and performance, physical machines are the better bet. \$\endgroup\$ – MichaelHouse Nov 8 '13 at 15:40
  • \$\begingroup\$ @Byte56 VMWare can set CPU quotas in MHz. I 've done it myself on a virtualized server when I did an internship as a sysadmin. But at that company we had some super-corporate-enterprise-datacenter-cluster-deluxe-edition. Maybe the more basic versions for desktop use lack that feature. \$\endgroup\$ – Philipp Nov 8 '13 at 15:45
  • \$\begingroup\$ Ah, OK, so something like VSphere and not VMWare Workstation. Still doesn't do the GPU as far as I know. \$\endgroup\$ – MichaelHouse Nov 8 '13 at 17:24

"Heard it doesn't perform too well on older Macbooks" doesn't really give you much information. You should be collecting cold hard data, and making your own deductions based on numbers.

Consider collecting data that you can get from browsers:

  • OS (navigator.appVersion containing one of Mac/Win/X11/Linux)
  • browser version (window.navigator)
  • resolution (window.screen.availWidth and window.screen.availHeight)
  • 3d rendering context presence (!!window.WebGLRenderingContext)
  • refresh rate (calculate the difference between start- and end-times for each update and render your game performs, and store that in an array from which you can calculate an average FPS)

Once you've got some statistics from which to work, you can decide how to take your investigation to the next step... even if that is borrowing/begging/stealing the problematic platform and running your profiler on it to see what is bogging down.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.