Design tool performance signatures

When pushed, how do various design tools utilise the hardware they’re running on? In other words, if you were to choose specs for a new Mac to be used for design, what should you focus on?

One way to test this is to rotate a large number of objects, to the point where canvas updates are delayed, and watch CPU and GPU usage. Rotation is good test, because it forces a full redraw of the objects.

Three separate tests were run in each tool. Test one rotated thousands of rectangles with 4px strokes. Test two rotated thousands of rectangles with a drop shadow (20px blur radius). Test three rotated thousands of rounded rectangles with gradients. Multiple tests where run to see if the features have different render paths, and just to observe any variation — many design tools use a combination of CPU and GPU rendering. For example, strokes can be rendered many different ways, but drop shadows are well suited to GPU rendering and pretty slow on the CPU. Gradients can be drawn many ways, but certain types of gradient dithering are trickier to do on the GPU.

These are not like for like tests. Each design tool was pushed to the point where the canvas was extremely laggy, and the amount of objects required to do that varied wildly from tool to tool. I will publish more like for like tests in the future. Some older tests can be found in this Twitter thread.

All tests were run on a 14-inch 2021 MacBook Pro (more detailed specs can be found at the end of the article).

Figma #

Figma appears largely GPU bound. The drop shadow test maxed out the GPU, but the other tests didn’t come close to using the available GPU. Based on these graphs, I’d say spending extra money on a better GPU would be more beneficial than getting a faster CPU or more ram — Figma is limited to 2GB of ram per tab.

Sketch #

Sketch is predominately CPU bound, and uses all the CPU cores it can get hold of.

XD #

XD doesn’t seem to utilise the CPU or the GPU fully. In some of these graphs, the first two CPU cores aren’t doing much. That’s normal for the M1 SoCs, because the first two cores are the efficiency cores.

Illustrator #

Illustrator’s graphs look similar to XD’s graphs, and it isn’t maxing out the CPU or GPU, despite the canvas being a very slow frame rate.

I did also notice that drop shadows perform quite poorly in Illustrator. Placing shadows on thousands of objects results in a progress bar. This didn’t happen in other tools. Illustrator does handle large numbers of objects well when there’s no shadows though.

Photoshop #

Photoshop’s graphs also look similar to XD’s graphs. Even though the canvas was struggling to keep up, the CPU and GPU have a lot of idle time. It is worth mentioning that Photoshop has an incredibly wide range of features, and these tests focus on rotating styled rectangles only.

Affinity Designer #

Similar to Sketch, Affinity Designer makes heavy use of multi-core CPU processing, and doesn’t seem to tax the GPU at all.

Hardware and testing methodology #

These tests are a little difficult to read — well optimised code will peg the CPU, or GPU, or both, to their limits. It makes sense that being on the edge of what is possible will be reflected by high CPU or GPU usage. However, this can also be true of inefficient code. CPU and GPU graphs being full simply means they’re busy working, and it doesn’t indicate how efficiently they’re being used.

We can say with some certainty that the CPU and GPU graphs having overhead means there is performance being left on the table. It means something is causing idling, and the CPU or GPU are probably waiting on memory I/O.

It’s also true that GPUs are fast at drawing graphics, and typically orders of magnitude faster than CPUs at the task. An ideal design tool under stress should probably look like the graphs below — the GPU is being fed as fast as memory bandwidth allows, rendering absolutely everything on canvas, with some CPU usage for interaction, management, and other tasks.

All tests were completed using the latest versions of each design tool, running on a 14-inch 2021 MacBook Pro with an 8-core M1 Pro and 32GB of memory. The internal display was used at medium brightness, with the app filling the screen (large window, not full screen mode). Power was not connected during testing, and the battery was over 75% charge at all times. A great amount of care was taken to ensure the testing is a fair representation of the apps mentioned. Please get in contact if you believe you have found an error.

Published 22 November 2021.