Patch Rendering Performance R2025a vs R2021b

I use patch() often for simple realtime visualization of robots in our machines.
Until now we have worked with Matlab R2021b. I am looking at Matlab R2025a for evaluation.
The newer release seems to be slower at rendering patches than the older release. I made a simple script to test this, see below.
On my computer, the script has the following running time:
R2021b: 5.1 seconds
R2025a: 7.1 seconds
Why is the newer version slower? Do I need to handle patch() differently for better performance? Any suggestions?
close all
p = patch('XData', rand(100,1),'YData',rand(100,1),'ZData',rand(100,1));
view(3)
tic()
for idx = 1:100
p.XData = rand(100,1);
p.YData = rand(100,1);
p.ZData = rand(100,1);
drawnow();
end
toc()

5 Comments

R2021b fails on my machine (operating system incompatibility.)
I tested R2022b. It does seem to average a little faster, but there was considerable overlap in the timings compared to R2025b.
R2022b best 3.655711 worst 4.573829 (around 4.2 was common)
R2025a best 4.245172 worst 4.684883 (around 4.3 was common)
dpb
dpb on 16 Jun 2025
Edited: dpb on 16 Jun 2025
R20211b best 6.205 worst 6.832
R20221b best 6.333 worst 7.311. (6.8 and 6.3 seemed about equally frequent)
Nothing later installed...
Just out of curiosity, have your tried using a constant set of data inside the loop just to see if by the most remote of chances there might be a difference in the rand timing confounding the graphics timing...
R2021b tested on virtual machine running Windows 10 (hosted on MacOS Sequoia): best 5.246 worst 5.632
R2025a tested on virtual machine running Windows 10 (hosted on MacOS Sequoia): best 8.266 worst 9.197
On the virtual machine, R2025a is visibly slower
I had the hypothesis that perhaps rand() was slower, so I tried preallocating XD = rand(100,100); and likewise YD and ZD, and then P.XData = rand(:,idx); and similar. The resulting code ran a bit slower on R2025a.
I assumed that rand() timing is negligible, because I ran the code above but with drawnow() commented out and it took about 0.01 seconds.

Sign in to comment.

 Accepted Answer

Hi Alexander,
I tested the code in both MATLAB R2025a and R2021b. The R2025a version was about 2 seconds slower than R2021b. However, when I ran the code with the "drawnow" command commented out, both versions took roughly the same amount of time. I believe the slower rendering of "patch()" in MATLAB R2025a compared to R2021b is mainly due to a significant change in the graphics rendering system introduced in R2025a. Specifically, MATLAB shifted from its previous Java-based graphics engine to a new WebGL-based system.
For more information on the new graphics rendering system refer the following MathWorks blog: https://blogs.mathworks.com/graphics-and-apps/2025/06/10/introducing-the-new-graphics-and-app-building-system-in-matlab-r2025a/
I would also recommend reaching out to MathWorks Technical Support regarding this query:
Hope this helps!!

More Answers (0)

Categories

Find more on Graphics Performance in Help Center and File Exchange

Products

Release

R2025a

Asked:

on 14 Jun 2025

Answered:

on 17 Jun 2025

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!