Apple M4 Pro - Rhino 8 - Memory Saturation

Hello, I’m experiencing memory saturation with Rhino 8 which is causing system crashes on a Macbook Pro M4 24GB. To empty the memory, I regularly have to quit Rhino, which isn’t very practical, or to work only in wireframe display mode. With the Mac OS activity monitor open in dual screen, I can see the memory allocated to Rhino climbing from GB to GB. Are there any plugins to deactivate, or specific settings to avoid this? Thanks a lot!

Rhino 8 SR21 2025-6-17 (Rhino 8, 8.21.25168.13002, Git hash:master @ 544dfaa0b8f1adb058e7a6c812863c48f143c8c6)
License type: Commercial, build 2025-06-17
License details: Stand-Alone

Apple macOS Version 15.5 (Build 24F74) (Physical RAM: 24GB)
Mac Model Identifier: Mac16,8
Language: en
.NET 8.0.14

Metal GPU Family Apple 7
Metal GPU Family Common 3
Metal GPU Family Mac 2
Graphics processors
Apple M4 Pro
BenQ PD2700U (1600 x 900 @ 60.00Hz)
Color LCD (1147 x 745 @ 120.00Hz)
GPU Vendor: Apple

USB devices
SanDisk: Extreme 55AE
GenesysLogic: USB3.1 Hub
CalDigit, Inc.: CalDigit Thunderbolt 3 Audio
3Dconnexion: SpaceMouse Wireless

Bluetooth devices
None

Third party kernel extensions
None

Third party plugins
/usr/lib/swift/libswiftCore.dylib
/usr/lib/swift/libswiftObjectiveC.dylib
/usr/lib/swift/libswiftCoreFoundation.dylib
/usr/lib/swift/libswiftDarwin.dylib
/usr/lib/swift/libswiftDispatch.dylib
/usr/lib/swift/libswiftIOKit.dylib
/usr/lib/swift/libswiftSystem.dylib
/usr/lib/swift/libswiftXPC.dylib
/usr/lib/swift/libswift_Builtin_float.dylib
/usr/lib/swift/libswift_Concurrency.dylib
/usr/lib/swift/libswift_StringProcessing.dylib
/usr/lib/swift/libswift_errno.dylib
/usr/lib/swift/libswift_math.dylib
/usr/lib/swift/libswift_signal.dylib
/usr/lib/swift/libswift_stdio.dylib
/usr/lib/swift/libswift_time.dylib
/usr/lib/swift/libswiftos.dylib
/usr/lib/swift/libswiftsys_time.dylib
/usr/lib/swift/libswiftunistd.dylib
/usr/lib/swift/libswiftDistributed.dylib
/usr/lib/swift/libswiftObservation.dylib
/usr/lib/swift/libswiftSynchronization.dylib
/usr/lib/swift/libswiftMetal.dylib
/usr/lib/swift/libswiftOSLog.dylib
/usr/lib/swift/libswiftQuartzCore.dylib
/usr/lib/swift/libswiftUniformTypeIdentifiers.dylib
/usr/lib/swift/libswiftsimd.dylib
/usr/lib/swift/libswiftRegexBuilder.dylib
/usr/lib/swift/libswift_RegexParser.dylib
/usr/lib/swift/libswiftCoreAudio.dylib
/usr/lib/swift/libswiftCryptoTokenKit.dylib
/usr/lib/swift/libswiftAVFoundation.dylib
/usr/lib/swift/libswiftCoreLocation.dylib
/usr/lib/swift/libswiftCoreMIDI.dylib
/usr/lib/swift/libswiftCoreMedia.dylib
/usr/lib/swift/libswiftCoreImage.dylib
/usr/lib/swift/libswiftAccelerate.dylib
/usr/lib/swift/libswiftNaturalLanguage.dylib
/usr/lib/swift/libswiftMLCompute.dylib
/usr/lib/swift/libswiftCompression.dylib
/usr/lib/swift/libswiftDataDetection.dylib
/usr/lib/swift/libswiftCoreGraphics.dylib
/usr/lib/swift/libswiftFoundation.dylib
/usr/lib/swift/libswiftSwiftOnoneSupport.dylib
/Library/Frameworks/3DconnexionClient.framework/Versions/A/3DconnexionClient
/usr/lib/usd/libusd_ms.dylib
/usr/lib/swift/libswiftIntents.dylib
/usr/lib/swift/libswiftSpatial.dylib
/usr/lib/swift/libswiftPassKit.dylib
/usr/lib/swift/libswiftAppleArchive.dylib
/usr/lib/swift/libswiftDemangle.dylib
/usr/lib/swift/libswiftVideoToolbox.dylib
/usr/lib/swift/libswiftGameplayKit.dylib
/usr/lib/swift/libswiftSpriteKit.dylib
/usr/lib/swift/libswiftGLKit.dylib
/usr/lib/swift/libswiftMetalKit.dylib
/usr/lib/swift/libswiftModelIO.dylib
/usr/lib/swift/libswiftSceneKit.dylib
/usr/lib/swift/libswiftMapKit.dylib
/usr/lib/log/liblog_network.dylib

Rhino plugins that do not ship with Rhino

Rhino plugins that ship with Rhino
/Applications/Rhino 8.app/Contents/Frameworks/RhMaterialEditor.framework “Renderer Development Kit” 8.21.25168.1002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/Commands.rhp “Commands” 8.21.25168.13002
/Applications/Rhino 8.app/Contents/PlugIns/NamedSnapshots.rhp “Snapshots” 8.21.25168.1002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RDK_EtoUI.rhp “RDK_EtoUI” 8.21.25168.13002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/MeshCommands.rhp “MeshCommands” 8.21.25168.13002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoRenderCycles.rhp “Rhino Render” 8.21.25168.13002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoCycles.rhp “RhinoCycles” 8.21.25168.13002
/Applications/Rhino 8.app/Contents/PlugIns/SectionTools.rhp “SectionTools” 8.21.25168.1002
/Applications/Rhino 8.app/Contents/PlugIns/Displacement.rhp “Displacement” 8.21.25168.1002
/Applications/Rhino 8.app/Contents/PlugIns/PanelingTools.rhp “PanelingTools” 8.21.25168.1002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoDLR_Python.rhp “IronPython” 8.21.25168.13002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/GrasshopperPlugin.rhp “Grasshopper” 8.21.25168.13002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoCodePlugin.rhp “RhinoCodePlugin” 8.21.25168.13002

Hi latonnelab -

When you launch Rhino and put the viewports in a shaded mode and do nothing else, do you then see the memory usage climb? If not, are there specific steps that you take that causes this on your end? Does it only happen in a specific model?
-wim

Hi Wim,
thank you !

If I do nothing, the memory usage is not climbing.

In fact it’s significant when I’m in the perspective viewport and I move the camera.
It is not related to the File. (I test with different models)
It is not related to the Materials. (I test without any materials)
It can be related to the Display Mode :

Here is a test showing Rhino memory usage.

  • 230 mo file.
  • Perspective Viewport.
  • Default Window Layout.
  • Values rounded to 0,5GB.

Wireframe Display Mode
0,0 GB Ready
0,5 GB Launch Rhino
1,0 GB Open the file
1,0 GB Do nothing for a while
1,5 GB Moving the camera during 15s
1,0 GB Stop moving the camera for a while
0,5 GB Close the file
0,0 GB Quit Rhino

Shaded Display Mode
0,0 GB Ready
0,5 GB Launch Rhino
1,5 GB Open the file
1,5 GB Do nothing for a while
4,5 GB Moving the camera during 15s
4,0 GB Stop moving the camera for a while
3,5 GB Close the file
0,0 GB Quit Rhino

Rendered Display Mode
0,0 GB Ready
0,5 GB Launch Rhino
1,5 GB Open the file
1,5 GB Do nothing for a while
5,0 GB Moving the camera during 15s
4,5 GB Stop moving the camera for a while
4,0 GB Close the file
0,0 GB Quit Rhino

So If I can resume :
The memory used by rhino never drops significantly, even when files are closed,
which means you need to remember to quit rhino regularly before it freezes,
and before Mac Os system crashes.

Tips :
I install a RAM-tracking app with an alert before the memory threshold is reached, so that I have time to save the work in progress on Rhino. But I’d be happy to know if this problem has any solutions, so as to have a better workflow with amazing Rhino in the future.

you could use the Terminal, sudo purge followed by your password. that does not prevent the memory leakage from happening of course

Ok, thank you encephalon,
I test the purge command, but it doesn’t clear Rhino memory usage,
Maybe this command is related to Cached files or Swap ?

it actually clears unused memory, so yes it might be not useful at all in your case, when rhino keeps hogging memory further.

ah wait a second, maybe you tried Rhinos purge? no i meant Mac OS has a stock app called Terminal, outside of Rhino, it is located in the utilities folder of you system folder and is a unix based terminal of some sort that lets you execute commands to administrate the system and more.

Yes I did this in the terminal,
I think actually that clear the cache.
Good to know about the Rhino Purge cmd too.
Are you a Rhino for Mac user ?
If you are, do you have this memory usage issue ?

yes correct but it also frees up data in the ram that should increase speeds for repeated disk access data,.

generally that command is not very effective, i started using it a long time ago but reading around its more like a make you feel better command than anything else :smile:

yes

i have an m1 studio ultra with 64 gb, looking into the activity monitor it tells me that i am using ~35 gb of ram currently with firefox and rhino open, rhino sits idle (i leave it always open) with more than 5 gb which is quite significant when i restart i have 300 mb so something is happening that should not for sure. i might not have noticed because 64 gb is quite a lot if you dont work with all apps open. but now that i know that its hogging my memory i might have to keep closing it each time.

Ok thank you for details,
here are screenshots of my activity monitor (with some french to english translated items)
1 - After working, without any files open
2 - After quit Rhino
What do you think ?


I had the same problem with Mac 14in Pro M4 with Rhino 8. But it turns out I tuned on render setting to viewport that makes rhino rendering inthe background every single second. Not sure if it’s the same issue but worth checking render prpoperties!