Unexplainable delay in selection due to Content Cache component

I have noticed a strange behavior in the last few days. I’m using Sasquatch’s Objects by Selection to obtain the objects I select in Rhino. I match the selection with the Queried Model Objects using their GUID. From there, I can quickly assign Key/Value pairs.

As you can see, the entire script (excluding the lower Query Model Objects, which I left to indicate the size of the file that contains mostly curves) should take around 20 ms to compute.

However, what I am noticing is a half a second delay running the script.

I’ve run the video through Davinci Resolve and compared the frame where the yellow selection highlight is first visible and the one that shows the Gumball first.

It’s clear that this ~0,5 second is nowhere near to the 20-40 ms I should be expecting.

In fact, when I disconnect the Content Cache component, everything works as it should:

Get selected model object.gh (12.5 KB)

The weird thing is is that the Content Cache component is set to trigger manually, so it is not supposed to do anything:

Although that’s True without a selection, when I select and object and that object is fed into the Content Cache it does output a result.

That’s why I tried to do what’s menrioned in the topic below: hiding the Content Cache result.

Have you tried to switch off preview on the cache component? I think it has an influence and this was mentioned somewhere before…

That doesn’t make a difference (neither does deselecting the component for that matter):

1 Like

Hiding the Result still has to be the best way to improve performance. It is concerning that the button goes away? Do you have a screenshot of that. My testing of 8.22 looks like this:

Yes, this is just after clicking the (-) on the results output:

Version 8 SR22 (8.22.25217.12451, 2025-08-05)

But even when the results are removed — and a button is connected to the Content Cache component to make up for the loss of the Push Content button, the delay is still the same. For this case, it makes on difference having the result output or not. Even without any outputs, the 0,5s delay is still there. So there’s definitely something broken here.

Tagging @kike since you’ll likely know what could be the problem here.

We can of course profile this thing. Although adding objects to the Rhino database does take some amount of time. It is one reason Grasshopper preview objects are quite a bit faster.

The Button turns on when an appropriate input is attached.

v8cache

1 Like

What I don’t understand is why Content Cache would delay selections in Rhino in my case even though its Content input is empty or the input button passes through an empty. There shouldn’t be a reason for the component to do anything here.

Yet I do see that sometimes there is a delay in R8 and even in the WIP and sometimes there isn’t. So maybe it is hard to reproduce on your end too. I’ve been using this method for a while and only noticed this delay for the last couple of days. In fact, I put my laptop to sleep yesterday while experiencing the delay (and the push button disappearing), continued to test just now, had the delay and when I tried to record it, it wasn’t there all of a sudden (under the exact same conditions). And the same goes for the Push Content button, which is no longer disappearing. So I think the two issues are related.

But even when there was a delay, adding a data dam in the script to delay the Content input by 0,25s, makes the component feel like there is almost no delay (while I am adding half of the delay that was there previously).

There are a complex.set of reasons that delays can be seen that combine a series of event handlers in the background.

Is this delay possible to reproduce with this certain model everytime?

Can we get that model to profile it?

We have someone here that has been profiling unusual performance issues.

Large models zipped can be sent here: https://www.rhino3d.com/upload

If the issue emerges again, I’ll immediately save the file, upload it through the link and send a heads-up.

Sent the simplest possible Grasshopper script in for profiling. It did also lead to larger computation times (30-72 ms) with an empty input in a new file for me. But it remained somewhat inconsistent.
If anyone wants to test run it, give this script a try:

Content Cache Delay - Layer Push.gh (14.0 KB)

I also think it’s quite odd that Pulling 47 curves with 6 User Text Attributes each can take this long to compute:

I saw it happen when I was investigating why the gumball takes a while to turn from black to the Red/Green axes when I’m clearly no longer hovering over it. Though it appears the gumball is still usable in this state, so the problem is mostly visual and not necessarily a usability problem.

https://vimeo.com/manage/videos/1116731918

Not seeing these behaviors with your files. Let’s troubleshoot by temporarily removing 3rd Party plugins.

SystemInfo

Rhino 9 SR0 2025-8-26 (Rhino WIP, 9.0.25238.12305, Git hash:master @ ba2cf38650b3af8790c8629a1f03c10309209bd2)
License type: Educational Lab License, build 2025-08-26
License details: LAN Zoo Network Node
Expires on: 2025-10-10

Windows 11 (10.0.26100 SR0.0) or greater (Physical RAM: 31GB)
.NET 9.0.1

Computer platform: LAPTOP - Plugged in [76% battery remaining]

Non-hybrid graphics configuration using OpenGL
Primary display: NVIDIA GeForce RTX 4070 Laptop GPU (NVidia) Memory: 8GB, Driver date: 6-12-2025 (M-D-Y). OpenGL(4.6.0 NVIDIA 576.80)

Integrated accelerated graphics device with 4 adapter port(s)

  • Windows Main Display is laptop’s integrated screen or built-in port
    Primary OpenGL: NVIDIA GeForce RTX 4070 Laptop GPU (NVidia) Memory: 8GB, Driver date: 6-12-2025 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 576.80

    Integrated accelerated graphics device with 4 adapter port(s)

  • Windows Main Display is laptop’s integrated screen or built-in port

Secondary graphics devices.
AMD Radeon™ 610M (AMD) Memory: 1GB, Driver date: 5-7-2024 (M-D-Y).

Integrated accelerated graphics device with 5 adapter port(s)

  • This device is not being used

OpenGL Settings
Safe mode: Off
Use accelerated hardware modes: On
GPU Tessellation is: On
Redraw scene when viewports are exposed: On
Graphics level being used: OpenGL 4.6 (primary GPU’s maximum)

Anti-alias mode: 4x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: High

Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 6-12-2025
Driver Version: 32.0.15.7680
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 8188 MB

OpenBLAS: OpenBLAS 0.3.29 DYNAMIC_ARCH NO_AFFINITY Cooperlake MAX_THREADS=64.

Rhino plugins that do not ship with Rhino

Rhino plugins that ship with Rhino
C:\Program Files\Rhino 9 WIP\Plug-ins\Commands.rhp “Commands” 9.0.25238.12305
C:\Program Files\Rhino 9 WIP\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino 9 WIP\Plug-ins\UpdatesAndStatistics\UpdatesAndStatistics.rhp “UpdatesAndStatistics” 9.0.25238.12305
C:\Program Files\Rhino 9 WIP\Plug-ins\RhinoRenderCycles.rhp “Rhino Render” 9.0.25238.12305
C:\Program Files\Rhino 9 WIP\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 9.0.25238.12305
C:\Program Files\Rhino 9 WIP\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino 9 WIP\Plug-ins\MeshCommands.rhp “MeshCommands” 9.0.25238.12305
C:\Program Files\Rhino 9 WIP\Plug-ins\IronPython\RhinoDLR_Python.rhp “IronPython” 9.0.25238.12305
C:\Program Files\Rhino 9 WIP\Plug-ins\RhinoCycles.rhp “RhinoCycles” 9.0.25238.12305
C:\Program Files\Rhino 9 WIP\Plug-ins\Grasshopper\GrasshopperPlugin.rhp “Grasshopper” 9.0.25238.12305
C:\Program Files\Rhino 9 WIP\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 9.0.25238.12305
C:\Program Files\Rhino 9 WIP\Plug-ins\3dxrhino.rhp “3Dconnexion 3D Mouse”
C:\Program Files\Rhino 9 WIP\Plug-ins\Displacement.rhp “Displacement”
C:\Program Files\Rhino 9 WIP\Plug-ins\SectionTools.rhp “SectionTools”

Thanks

One way to quickly test would be to start Grasshopper from the Rhino command line with GrasshopperLoadOneByOne and say no to all these…

image

Okay, I can confirm that without the Plugins this delay disappears.

E: It came back.

2 Likes

My guess would be an older plugin that was compiled for Rhino 7 or even earlier (.netframework), these are still functional in .net 9 but are not in an optimal way.

Yes, I’m trying to narrow that down. I now have Heron, Metahopper, Pancake, Pancake Spreadsheet, Human and Wombat loaded.

E1: Human makes the Content Cache require 9ms.

E2: MetaHopper does the same.
E3: Sasquatch too.
E4: Wombat too.

Okay, now I tried it once more after a reboot and even disabled the scripting libraries, I’m still seeing the delay without any plugins loaded.

Pufferfish, I think has registered the SubD components weirdly. Placing the components prompts a download.

Flexibility is this:


And also prompts a download.

And the SW are my User Objects, which may contain the parts of other plugins, but upon inserting these components, they fail to load.

Is there anything else that I can do to troubleshoot this further?